Double data rate test interface and architecture

ABSTRACT

A device test architecture and a reduced device test interface are provided to enable efficient testing of embedded cores and other circuits within devices. The reduced device test interface is achieved using a double data rate (DDR) signaling technique between the tester and the device. The DDR test interface allows the tester to interface to test circuits within the device, such as IEEE 1500 and/or IEEE 1149.1 test circuits, to provide high test data bandwidth to the test circuits using a minimum of test interface signals. The test architecture includes compare circuits that allow for comparison of test response data to be performed within the device. The test architecture further includes a memory for storing the results of the test response comparisons. The test architecture includes a programmable test controller to allow for various test control operations by simply inputting an instruction to the programmable test controller from the external tester. Additional features and embodiments of the device test architecture and reduced test interface are also disclosed.

This application is a divisional of prior application Ser. No.12/821,366, filed Jun. 23, 2010, currently pending;

which was a divisional of prior application Ser. No. 12/410,584, filedMar. 25, 2009, now U.S. Pat. No. 7,770,083, granted on Oct. 14, 2010;which was a divisional of prior application Ser. No. 11/774,269, filedJul. 6, 2007, now U.S. Pat. No. 7,529,996, granted on May 5, 2009;which claims priority from Provisional Application No. 60/821,315, filedAug. 3, 2006.

FIELD OF THE INVENTION Description of Related Art

FIG. 1 illustrates the test wrapper architecture 102 defined in IEEEstandard 1500. The wrapper architecture is used to perform internaltesting of a core circuit 104 embedded within and integrated circuit.The wrapper architecture is also used to perform external testing of theinterconnects to other embedded core circuits connected to the embeddedcore circuit 104. The wrapper architecture is very similar to theboundary scan test architecture defined in IEEE 1149.1, in that itincludes: (1) a wrapper instruction register (WIR) 106 for storing testinstructions, (2) a wrapper bypass register (WBY) 108 for providing anabbreviated scan path through the wrapper, and a wrapper boundaryregister (WBR) 110 for controlling the core outputs, controlling thecore inputs, observing the core outputs, and observing the core inputs.When the core is in normal mode, the external core inputs 116 arecoupled to the internal core inputs 118 via the WBR, and the internalcore outputs 122 are coupled to the external core outputs 120 via theWBR. When the core is in external test mode, the external core inputs116 can be observed by the WBR and external core outputs 120 can becontrolled by the WBR. When the core is in internal test mode, theinternal core inputs 118 can be controlled by the WBR and the internalcore outputs 122 can be observed by the WBR.

The wrapper architecture has a wrapper serial input (WSI) 126 and awrapper serial output (WSO) 128. WSI and WSO are similar to the TDI andTDO signals of the 1149.1 test architecture and are used to inputinstruction and data to the architecture. The wrapper architecture hascontrol signals 124 consisting of: a wrapper clock (WRCK) for timinginstruction and data scan operations, a capture wrapper signal(CaptureWR) for capturing data into the WIR, WBR, WBY, or data registerscan paths 112 of the core circuit, a shift wrapper signal (ShiftWR) forcontrolling the shifting of the WIR, WBR, WBY, or data register scanpaths, an update wrapper signal (UpdateWR) for updating data from theWIR, WBR, or data register scan paths, an optional transfer dataregister signal (TransferDR) for performing at speed tests using theWBR, a select wrapper instruction register signal (SelectWIR) forselecting either the WIR, or the WBR, WBY, or a selected data registerscan path for serial access via WSI and WSO, and a wrapper reset signal(WRST) to reset the WIR and other circuits in the wrapper. These controlsignals 124 are input to a wrapper control interface 114. In response tothese control signals, the wrapper control interface outputs instructionregister (IR) control to operate the instruction register or dataregister (DR) control to operate the WBR and/or data register scanpaths. The IEEE standard 1500 test wrapper architecture of FIG. 1 iswell known.

FIG. 2 illustrates one example implementation of a wrapper controlinterface 114 for receiving the control signals 124. As seen the WRCK,ShiftWR, CaptureWR, UpdateWR, and SelectWIR control signals are input toa selector circuit 202 which is controlled by the SelectWIR signal. Whenthe SelectWIR signal input to selector circuit 202 is low, the WRCKdrives ClockDR, ShiftWR drives ShiftDR, CaptureWR drives CaptureDR, andUpdateWR drives UpdateDR. The ClockDR, ShiftDR, CaptureDR, and UpdateDRsignals form the DR control bus that controls the WBR 110 and/or dataregister scan paths 112 of FIG. 1. When the SelectWIR signal input toselector circuit 202 is high, the WRCK drives ClockIR, ShiftWR drivesShiftIR, CaptureWR drives CaptureIR, and UpdateWR drives UpdateIR. TheClockIR, ShiftIR, CaptureIR, and UpdateIR signals form the IR controlbus that controls the WIR 106 of FIG. 1. The WRST control signal drivesa Reset signal that is used to initialize the WIR and other circuitswithin the test architecture. The optional TransferDR control signal, ifused, passes through the wrapper control interface to the WBR.

FIG. 3 illustrates a simplified view of the test wrapper architecture102 of FIG. 1 that includes only the core data register scan paths 112and wrapper control interface 114. This wrapper test mode is enabled byloading the WIR with a core test instruction. As seen, and as describedin the IEEE 1500 standard, the serial input of each data register scanpath 112 may be coupled to a wrapper parallel input (WPI) signal 302 andthe serial data output of each data register scan path 112 may becoupled to a wrapper parallel output (WPO) signal 304. In thisarrangement, parallel scan testing is achieved by inputting stimulus toeach data register scan path via a WPI input and outputting responsedata from each data register scan path via a WPO output. The controlinputs 124 to the wrapper control interface 114 control the capture andshift operations of the parallel data register scan paths 112. This typeof parallel scan testing is used to test combinational logic and is wellknown.

FIG. 4 illustrates a simplified view of the test wrapper architecture102 of FIG. 1 that includes only the core data register scan paths 112,WBR input sections 402, WBR output sections 404, and wrapper controlinterface 114. This wrapper test mode is enabled by loading the WIR witha core test instruction. As seen in FIG. 4, and as described in the IEEE1500 standard, the WBR 110 of FIG. 1 may be partitioned into smallerlength WBR sections 402 and 404. The WBR sections can be placed inseries with a core data register 112 to form a scan path 406 thatincludes both WBR scan cells and core data register scan cells. As withthe data register scan paths of FIG. 3, the serial input of each scanpath 406 may be coupled to a WPI signal 302 and the serial data outputof each scan path 406 may be coupled to a WPO signal 304. In thisarrangement, parallel scan testing is achieved by inputting stimulus toeach scan path 406 via a WPI input and outputting response data fromeach scan path 406 via a WPO output. The control inputs 124 to thewrapper control interface 114 control the capture and shift operationsof the parallel scan paths 406. During the parallel scan test, externalinputs 116 and internal outputs 122 to the WBR sections are observableand internal inputs 118 and external outputs 120 from the WBR sectionsare controllable. Being able to control and observe the core boundaryinput and output signals during parallel scan testing of the coreimproves the ability to fully test the core. This type of parallel scantesting is similar to the one described in FIG. 3 with the exceptionthat WBR sections are included in series with the data register scanpaths 112.

FIG. 5 illustrates a device under test (DUT) 502, such as a packagedintegrated circuit, a die singulated from a wafer, or die on a wafer,coupled to a tester 504 for testing. The DUT contains a number ofembedded cores 1-N, each including the IEEE 1500 wrapper architecture ofFIG. 1. As seen, the tester has output circuitry 506 to drive stimulusdata to the WPIs 510 of each core wrapper, input circuitry 508 toreceive response data from the WPOs 512 of each core wrapper, controloutputs 514 to drive the control signal inputs 124 of each core wrapper,an output 516 to drive the WSI input 126 of the DUT, and an input 518 toreceive WSO output 128 from the DUT. As seen, the core wrappers aredaisychained between the DUT's WSI input 126 and WSO output 128. Whilenot shown, the DUT will also have a test enable input from the testerthat is used to switch the DUT from its functional architecturalconfiguration into the test architectural configuration shown in FIG. 5.The tester starts the test by outputting control to control bus 124 toscan a test instruction into the WIRs of each core wrapper via WSI andWSO. The test instructions, in this example, configure each core wrapperfor parallel scan testing via WPI and WPO as described in FIG. 3 or 4.During the test, the tester outputs control to control bus 124 to causethe core wrappers to perform parallel scan testing by inputting WPIstimulus data from output circuits 506 and outputting WPO response datato input circuits 508, according to conventional capture and shift scanoperations. As seen, testing all cores at the same time requires thetester to have an output circuit 506 and an input circuit 508 for eachcore wrapper. Each tester output circuit 506 typically includes astimulus data memory to drive stimulus data to the WPI of each corewrapper. Each tester input circuit 508 typically includes a mask datamemory, an expected data memory, and a compare circuit to compareunmasked expected data with the response data from WPO. Withconventional testers, it is possible to use a single output circuit 506to simultaneously broadcast WPI stimulus data to all cores within a DUT.However, conventional testers will require a separate input circuit 508to receive the response data from each core to enable detection of corespecific fail response data. Testers, like tester 504, that include asufficient number of output 506 and input 508 circuits for testing largenumbers of embedded cores as described above are very costly. The testercost problem worsens significantly when multiple DUTs 502 need to betested simultaneously, such as at wafer level testing where multiple die(DUTs) need to be contacted and simultaneously tested to reducesemiconductor manufacturing cost.

FIG. 6 illustrates a DUT 602 coupled to a tester 604 for testing. TheDUT contains a number of embedded cores 1-N, each including the IEEE1500 wrapper architecture of FIG. 1. The DUT of FIG. 6 differs from theDUT of FIG. 5 in that it includes a user defined test access mechanism(TAM). User defined TAMs are mentioned in IEEE standard 1500, but thestandard does not provide standardization of such circuits. As the nameimplies the user defines the operation and function of TAM circuits. Inthis example, a user defined TAM is shown that provides an interfacebetween a selected core wrapper's WPI and WPO buses and the tester'soutput circuit 506 and input circuit 508 respectively. This type of TAMis known in the art. Once an interface is made between the tester and afirst core wrapper via the TAM, the first core is tested using theparallel scan approach described in FIG. 5. When the first core has beentested, the TAM interfaces to a second core wrapper to similarly testthe second core. This core wrapper selection and core test processrepeats until all the embedded cores have been tested. As seen, sinceonly one core is tested at a time, the tester only requires one outputcircuit 506 and one input circuit 508. Thus the tester cost is reduced,but the test time of the DUT increases over that of FIG. 5 since thecores are tested one at a time. As with the tester 504 of FIG. 5, thetester 604 cost increases when multiple DUTs 602 need to be testedsimultaneously (i.e. simultaneous testing of multiple die on wafer,singulated die in fixture, or packaged die in fixture) since the testerwould need to have additional output 506 and input 508 circuits for eachDUT being contacted and simultaneously tested. As mentioned in regard toFIG. 5, conventional testers may use a single output circuit 506 foreach DUT, but they will require a separate input circuit 508 for eachDUT.

SUMMARY OF THE INVENTION

The present invention provides a device test architecture, interface,and method for enabling efficient testing of large numbers of devicessimultaneously. The device test architecture internally evaluates thetest response using a compare circuit within the device, whicheliminates the need to output the device test response to the tester.The inventions ability to evaluate test response inside the devicessimplifies testers to only having to input test data and control to thedevice. The device test architecture includes a programmable testcontroller that can be programmed by an instruction to perform anynumber of test operations without having to increase the number ofsignals on the test interface.

DESCRIPTION OF THE VIEWS OF THE DRAWINGS

FIG. 1 illustrates the prior art architecture of the IEEE 1500 CoreWrapper standard.

FIG. 2 illustrates an example of the control interface to the IEEE 1500standard.

FIG. 3 illustrates a first parallel scan path arrangement using the IEEE1500 standard.

FIG. 4 illustrates second parallel scan path arrangement using the IEEE1500 standard.

FIG. 5 illustrates a tester connected to a device containing cores withIEEE 1500 wrappers.

FIG. 6 illustrates a tester connected to a user defined test accessmechanism (TAM) that provides access to cores with IEEE 1500 wrappers.

FIG. 7 illustrates a tester connected to a device that contain thearchitecture of the present invention.

FIGS. 8A and 8B illustrate example implementations of the TAM selectorof the present invention.

FIG. 9 illustrates an example implementation of the Scan Router of thepresent invention.

FIG. 10 illustrates a TAM of the present invention interfaced to a TAMcontroller of the present invention.

FIG. 11 illustrates the interface between a core wrapper and the TAMcontroller of the present invention.

FIG. 12 illustrates a compare circuit of the present inventioninterfaced to a TAM controller of the present invention.

FIG. 13 illustrates a first example implementation of the TAM controllerof the present invention.

FIGS. 14A-14F illustrate the operation of the first TAM controller inresponse to TAM controller instructions according to the presentinvention.

FIG. 15 illustrates a second example implementation of the TAMcontroller of the present invention.

FIGS. 16A-16F illustrate the operation of the second TAM controller inresponse to TAM controller instructions according to the presentinvention.

FIG. 17 illustrates the timing of selecting a TAM controller,instructing a TAM controller, and executing a wrapper instruction scanoperation using the TAM controller according to the present invention.

FIG. 18 illustrates an alternate timing of selecting a TAM controller,instructing a TAM controller, and executing a wrapper instruction scanoperation using the TAM controller according to the present invention.

FIG. 19 illustrates detail timing of performing a wrapper instructionscan operation using the TAM controller of the present invention.

FIG. 20 illustrates detail timing of performing a wrapper boundaryregister scan operation using the TAM controller of the presentinvention.

FIG. 21 illustrates detail timing of scanning fail data out of a TAMusing the TAM according to the present invention

FIG. 21A illustrates using No-Op Mode patterns during shift operations.

FIG. 22 illustrates detail timing of performing a first parallel scantest operation using a TAM and TAM controller according to the presentinvention.

FIG. 23 illustrates detail timing of performing a second parallel scantest operation using a TAM and TAM controller according to the presentinvention.

FIG. 24 illustrates an alternate TAM of the present invention interfacedto an alternate TAM controller of the present invention.

FIG. 25 illustrates detail timing of performing a first parallel scantest operation using the alternate TAM and TAM controller according tothe present invention.

FIG. 26 illustrates detail timing of performing a second parallel scantest operation using the alternate TAM and TAM controller according tothe present invention.

FIG. 27 illustrates a third example implementation of the TAM controllerof the present invention.

FIG. 28 illustrates a TAP circuit interfaced to the TAM controller ofFIG. 27 according to the present invention.

FIG. 29 illustrates a device containing the architecture of the presentinvention interfaced to a controller for test, debug, trace, andemulation operations.

FIG. 30 illustrates a device containing a single TAM controllerarchitecture of the present invention interfaced to a tester.

FIG. 31 illustrates an example implementation of the TAM controller ofFIG. 30.

FIG. 32 illustrate a device containing an alternate single TAMcontroller architecture of the present invention interfaced to a tester.

FIG. 33 illustrates an example implementation of the TAM controller ofFIG. 32.

FIG. 34 illustrates the interface between the TAM controller, TAM, andcore of FIG. 32 according to the present invention.

FIG. 35 illustrates a test arrangement between a tester and a pluralityof devices.

FIG. 36 illustrates a test arrangement between a tester and a pluralityof strings of devices.

FIG. 37 illustrates a TAM and TAM controller of the present inventioninterfaced to a serial input bus from a tester.

FIG. 38 illustrates the TAM's SDM, EDM, MDM, the TAM controller's TIR,and the TAM Selector's data register interfaced to a single serial inputbus according to the present invention.

FIG. 39 illustrates the TAM's SDM, EDM, MDM, the TAM controller's TIR,and the TAM Selector's data register interfaced to three separate serialinput buses according to the present invention.

FIG. 40 illustrates a TAM and system TAM controller of the presentinvention interfaced to a serial input bus from a tester.

FIG. 41 illustrates a TAM and TAM controller of the present inventionselectively interfaced to either a serial or parallel input bus from atester.

FIG. 42 illustrates an example design for a selectable serial orparallel input SDM, EDM, or MDM circuit.

FIG. 43 illustrates an example design for a selectable serial orparallel input TIR circuit.

FIG. 44 illustrates an example design for a selectable serial orparallel input TAM Selector data register circuit.

FIG. 45 illustrates a TAM and system TAM controller of the presentinvention selectively interfaced to either a serial or parallel inputbus from a tester.

FIG. 46 illustrates TAMs and system TAM controller of the presentinvention interfaced to a tester using a double data rate (DDR) inputcircuit.

FIG. 47 illustrates an example design for the DDR input circuit of FIG.46.

FIG. 48 illustrates a TAM Selector, TAM controllers and TAMs of thepresent invention interfaced to a tester using a double data rate (DDR)input circuit.

FIG. 49 illustrates an example design for the DDR input circuit of FIG.48

FIG. 50 illustrates a test arrangement between a tester and a pluralityof devices using a double data rate (DDR) test interface.

FIG. 51 illustrates a test arrangement between a tester and a pluralityof strings of devices using a double data rate (DDR) test interface.

DETAILED DESCRIPTION

FIG. 7 illustrates a preferred embodiment of the testing method, testingapparatus, and testing system as disclosed in the present invention. Theembodiment includes a DUT 702 test architecture, a DUT tester 712, and aDUT to tester interface 714 including an input bus 720, a control bus722, a scan input 724 and a scan output 726. While not shown and asmentioned previously in regard to FIG. 5, the DUT will also have a testenable input from the tester that is used to switch the DUT from itsfunctional architectural configuration into the test architecturalconfiguration shown in FIG. 7. The DUT test architecture includes a TAM704 for each embedded core 708, a TAM controller 706 for each embeddedcore 708, a TAM selector 710 for selecting an embedded core's TAM 704and TAM controller 706, and a scan router 744 for routing the flow ofserial data between tester 712 and various TAM controllers 706. Eachembedded core 708 includes an IEEE 1500 wrapper architecture 102 andinterface as shown in FIG. 1. The embedded cores 708 could be the sameor different cores types. Core 708 types may include but are not limitedto digital signal processing cores, microprocessor cores, and mixedsignal cores. The input bus 720 from the tester is input to the TAMs704, the TAM controllers 706, and the TAM selector 710. The control bus722 from the tester is input to the TAM controllers 706 and the TAMselector 710. The scan input 724 from the tester is input to the scanrouter 744 and the scan output 726 from the scan router is input to thetester. The TAMs 704 input WPI signals to the cores 708 and receive WPOsignals from the cores 708. The TAM controllers 706 are coupled to theTAMs 704 via bus 730, to the core wrappers via bus 728, and to the scanrouter 744 via scan out (SO) 732 and scan in (SI) 734 signals. The TAMselector is coupled to each TAM controller via select signals 736, tothe scan router via control bus 738, and to any other required circuitsvia bus 740.

As seen, the only output from the DUT to the tester is the scan output726, all other tester interface signals 720, 722, and 724 are inputs tothe DUT. Each TAM 704 includes a stimulus data memory 742 for inputtingWPI stimulus data to each core wrapper. Each TAM 704 includes a comparecircuit 716 that includes a mask data memory 746, an expected datamemory 748, and a circuit 750 for comparing WPO response data from eachwrapper to unmasked expected data. Since each TAM includes comparecircuit 716, the core wrapper's WPO response data does not have to besent to the tester, rather the WPO response data is compared within theTAMs using compare circuit 716. The tester has an input circuit 718 thatdrives the input bus 720 to the DUT. The input circuit 718 is used toinput mask and expected data to the mask 746 and expected 748 datamemories of compare circuit 716, stimulus data to stimulus data memory742, and TAM selection data to TAM selector 710. The tester also hascircuitry for outputting control on bus 722, circuitry for outputtingserial data on scan in 724, and circuitry for inputting serial data fromscan out 726.

FIG. 8A illustrates a first example implementation of the TAM selector710 of FIG. 7. The TAM selector 710 includes a data register 806containing a number of bit positions. The data register has data inputscoupled to input bus 720, a SelectTAM signal 802 from control bus 722, aclock signal 804 from control bus 722, and data outputs for outputtingthe select signals 736, the scan router control bus 738, and the othercontrol bus 740 of FIG. 7. If the SelectTAM signal 802 is active, dataon the input bus 720 is written into the data register 806 by the clocksignal 804. If the SelectTAM signal is inactive, data on the input bus720 is not written into the data register. The data written into thedata register is output on the select signals 736 to select one or moreof the TAM controllers 706, output on the scan router control bus 738 toselect how serial data is routed through the scan router 744, and outputon the other control bus 740 to control any other circuits that may bepresent in the DUT architecture of FIG. 7 and need to be controlled bythe TAM selector 710.

FIG. 8B illustrates a second example implementation of the TAM selector710 of FIG. 7. The TAM selector 710 includes a data register 808containing a number of bit positions. The data register has data inputscoupled to input bus 720, a SelectTAM signal 802 from control bus 722, aclock signal 804 from control bus 722, and data outputs coupled to adecode circuit 810. The decode circuit 810 has data inputs from the dataregister and data outputs for outputting the select signals 736, thescan router control bus 738, and the other control bus 740 of FIG. 7. Ifthe SelectTAM signal 802 is active, data on the input bus 720 is writteninto the data register 806 by the clock signal 804. If the SelectTAMsignal is inactive, data on the input bus 720 is not written into thedata register. The data written into the data register is output to thedecode circuit 810 where it is decoded and output on the select signals736 to select one or more of the TAM controllers 706, output on the scanrouter control bus 738 to select how serial data is routed through thescan router 744, and output on the other control bus 740 to control anyother circuits that may be present in the DUT architecture of FIG. 7 andneed to be controlled by the TAM selector 710. Since the TAM selector ofFIG. 8B uses a decode circuit 810, the data register 808 may be shorterin bit width than the data register 806 of FIG. 8A. The use of the TAMselector of FIG. 8B may be necessary instead of the TAM selector of FIG.8A if the number of bits required to control the select signals 736, thescan router control bus signals 738, and the other control bus signals740 exceed the bit width of the input bus 720. For example, using thedecode circuit 810, an 8 bit wide input bus 720 to the TAM selector ofFIG. 8B could be used to control a 16 bit wide select and control busoutput from the TAM selector.

FIG. 9 illustrates an example implementation of the scan router 744 ofFIG. 7. As mentioned, the scan router is a circuit that routes the flowof serial data between the tester 712 and TAM controllers 706. The scanrouter has inputs for receiving the TAM selector's control bus 738, thetester's scan in signal 724, and the TAM controllers scan out signals732. The scan router has outputs for outputting to the testers scan outsignal 726 and the TAM controllers scan in signals 734. As seen in onedetailed example of a scan router circuit 900, the control bus 738 isused to control multiplexers 902 and 904. In a first multiplexer controlsetting, the scan input signal 724 from the tester can be input to thescan input signal 734 of TAM controller 1 and the scan output signal 732of TAM controller 1 can be output to the tester scan out signal 726 viamultiplexer 904. This first control setting is used to allow the testerto serially access TAM controller 1. In a second multiplexer controlsetting, the scan input signal 724 from the tester can be input to thescan input signal 734 of TAM controller N via multiplexer 902 and thescan output signal 732 of TAM controller N can be output to the testerscan out signal 726 via multiplexer 904. This second control setting isused to allow the tester to serially access TAM controller N. In a thirdmultiplexer control setting, the scan input signal 724 from the testercan be input to the scan input signal 734 of TAM controller 1, the scanoutput signal 732 of TAM controller 1 can be input to the scan inputsignal 734 of TAM controller N via multiplexer 902, and the scan outputsignal 732 of TAM controller N can be input to the tester scan outsignal 726 via multiplexer 904. This third control setting is used toallow the tester to serially access both TAM controller 1 and TAMcontroller N. During a test that involves only one core, the tester willtypically only select the TAM controller of that core for serial accessto abbreviate the length of the serial scan path. An example of thistype of testing is when one core is being tested via the WPI and WPObuses between the core 708 and the TAM 705. During a test that involvesmultiple cores, the tester will typically select all the TAM controllersof the cores involved with the test. An example of this type of testingis when the functional interconnects between multiple cores are beingtested using an external test instruction that uses the wrapper boundaryscan register (WBR) 110 as described in the IEEE 1500 standard. Whilethe scan router example 900 only shows connections to two TAMcontrollers 706, any number of TAM controllers may be connected to thescan router to be accessed individually or in any desired combination.

FIG. 10 illustrates a more detailed view of the TAM 704 and theinterconnects between the TAM 704 and the TAM controller 706 of FIG. 7.As mentioned in regard to FIG. 7, the TAM includes a stimulus datamemory (SDM) 742, an expected data memory (EDM) 748, a mask data memory(MDM) 146, and a compare circuit 750, referred to in FIG. 10 as“Comparator & Fail Buffer”, for comparing WPO response data againstunmasked expected data from EDM 748. The SDM 742, EDM 748, and MDM 746are each coupled to the input bus 720 from the tester for inputtingdata. The SDM receives a stimulus data clock (SDC) 1002 from the TAMcontroller, the EDM receives an expected data clock (EDC) 1004 from theTAM controller, and the MDM 746 receives a mask data clock (MDC) 1006from the TAM controller. The SDM inputs stimulus data to the wrapper WPIinputs, the EDM inputs expected data to compare circuit 750, and the MDMinputs mask data to the compare circuit 750. The compare circuit 750inputs response data from the wrapper WPO outputs. The core wrapper'sWSI input 126 is driven by a WSI signal output from the TAM controller,the core wrapper's control bus 124 is driven by a control bus outputfrom the TAM controller, and the core wrapper's WSO output 128 is driveninto to a WSO signal input to the TAM controller. The core wrapperinterface signals 126, 124, and 128 form bus 728 of FIG. 7. FIG. 11shows the IEEE 1500 control signals of bus 124 between the core wrapperand TAM controller in more detail. The compare circuit 750 includes afail buffer which stores failing comparison data. To allow the tester toread failing comparison data from the fail buffer, the compare circuit750 includes a serial interface to the TAM controller including a serialinput (SO) 1008, a control (CTL) bus 1010, and a serial output (SO)1012. The SI 1008 is coupled to a comparator scan input (CSI) signalfrom the TAM controller, the SO 1012 is coupled to a comparator scanoutput (CSO) signal to the TAM controller, and the CTL bus 1010 iscoupled to a control (CTL) bus output from the TAM controller. The TAMinterface signals 1002, 1004, 1006, 1008, 1010, and 1012 form bus 730 ofFIG. 7. The TAM controller 706 has Mode 0-2 inputs 1014, a clock input804, and a SelectTAM input 802 input from the tester 712 via control bus722. The TAM controller 706 has a scan input 734 and a scan out 732coupled to scan router 744. The TAM controller 706 has a Select input736 coupled to TAM selector 710.

FIG. 12 illustrates a more detailed view of the compare circuit 750 andthe interconnects between the compare circuit 750 and the TAM controller706 of FIG. 10. The compare circuit 750 includes a comparator 1202, ORgate 1204, fail data FIFO 1206, scan cycle count FIFO 1208, scan cyclecounter 1210, and shift registers 1212 and 1214.

The comparator 1202 inputs the expected data from EDM 748, mask datafrom the MDM 746, and response data from the wrapper WPO outputs. Eachbit from the expected data (ED) bus, the mask data (MD) bus, and theresponse data (RD) bus is input to a maskable compare circuit 1216inside comparator 1202. The maskable compare circuit 1216 has anexclusive OR gate that inputs the ED and RD bit inputs and an And gatethat inputs the output of the exclusive OR gate and the MD bit input. Ifthe MD bit is low (non-mask level), the maskable compare circuit 1216will output a zero on the compare output (CO) if the ED and RD inputsare at the same logic level, and a one on the CO output if the ED and RDare at opposite logic levels. If the MD bit is high (mask level), themaskable compare circuit 1216 will output a low regardless of the logiclevels on the ED and RD bit inputs. For an 8-bit wide ED, RD, and MD busthe comparator 1202 will output an 8-bit wide compare output bus, i.e.one CO bit output from each of 8 maskable compare circuits 1216. Each CObit of the compare output bus is input to the fail data FIFO 1206 and toOR gate 1204. If any one or more of the CO bit outputs on the compareoutput bus go high (indicating one or more compare fails), the OR gate1204 will output a high on its fail indicator output.

The scan cycle counter 1210 is a counter with a reset input connected toa Count Reset signal 1228 from the TAM controller 706 and clock inputconnected to a Count Clock 1230 signal from the TAM controller 706. Thecounter 1210 is designed to reset to a count of zero in response to areset input and to count up in response to a clock input. The countoutput from the counter 1210 is input to the scan cycle count FIFO 1208.

The fail data FIFO 1206 has an input port and an output port. The inputport has an input bus for receiving fail data from the compare out busof comparator 1202, an input for receiving the fail indicator outputfrom OR gate 1204, and an input for receiving a compare clock input 1218from TAM controller 706. The output port has an output bus foroutputting stored fail data, an input for receiving a load/shift input1222 from TAM controller 706, and an input for receiving a shift clockinput 1224 from TAM controller 706. FIFO 1206 has a reset inputconnected to the count reset output 1228 from TAM controller 706. Inresponse to a reset input the FIFO data is cleared.

The scan cycle count FIFO 1208 has an input port and an output port. Theinput port has an input bus for receiving a scan cycle count fromcounter 1210, an input for receiving the fail indicator output from ORgate 1204, and an input for receiving the compare clock input 1218 fromTAM controller 706. The output port has an output bus for outputtingstored scan cycle count patterns, an input for receiving a load/shiftinput 1222 from TAM controller 706, and an input for receiving a shiftclock input 1224 from TAM controller 706. FIFO 1208 has a reset inputconnected to the count reset output 1228 from TAM controller 706. Inresponse to a reset input the FIFO data is cleared.

Shift register 1212 has an input bus for receiving the fail data busoutput from FIFO 1206, an input for receiving a comparator scan in (CSI)output from TAM controller 706, inputs for receiving the load/shift 1222and shift clock 1224 signals from TAM controller 706, and a serialoutput. Shift register 1214 has an input bus for receiving the scancycle count data bus from FIFO 1208, an input for receiving the serialoutput from shift register 1212, inputs for receiving the load/shift1222 and shift clock 1224 signals from TAM controller 706, and a serialoutput that is input to a comparator scan out (CSO) 1226 input to TAMcontroller 706.

At the beginning of a test operation the scan cycle counter 1210 will bereset to a scan cycle count of zero. Each time scan cycle is completedthe counter 1210 counts up. A scan cycle is defined as a captureoperation that captures response data into parallel scan paths, such asthe parallel scan paths 112 of FIG. 3 or 406 of FIG. 4, followed by aseries of shift operations that input stimulus data into the parallelscan paths from WPI and output captured response data from the parallelscan paths to WPO. The comparator 1202 compares the output WPO responsedata against unmasked expected data and outputs the compare results onthe compare out bus. During each compare operation, the TAM controller706 outputs a compare clock 1218 to the FIFOs 1206 and 1208. If the failindicator from OR gate 1204 is low (no compare failure) when the compareclock occurs, the FIFOs will not input data on their data bus inputs. Ifthe fail indicator from OR gate 1204 is high (a compare failure) whenthe compare clock occurs, the fail data FIFO 1206 will input the failingdata on the compare out bus and the scan cycle count FIFO will input thescan cycle count output from counter 1210. This test process ofcomparing response data from WPO to unmasked expected data during eachshift of a scan cycle is repeated until the test is complete. At the endof test, the fail data FIFO 1206 will contain any failing compare datathat occurred during the test and the scan cycle count FIFO will containthe scan cycle in which failing compare data occurred. For example, ifthree failing compares occurred during scan cycle 1, FIFO 1206 willcontain the three failing compare data patterns in three sequential FIFOlocations and FIFO 1208 will contain a scan cycle count of 1 in the samethree sequential FIFO locations to indicate that the three failingcompare data patterns occurred during scan cycle 1. When the testerscans out the contents of the FIFOs, it can be determined that the threefailures occurred during scan cycle 1 by observing the contents of thesame sequential locations in the FIFOs.

Following a test, the TAM controller operates its load/shift 1222(high=load, low=shift) and shift clock 1224 outputs to cause the shiftregisters 1212 and 1214 to load a location of data from the FIFO 1206and 1208 and shift loaded data out to the tester. This load and shiftoperation is repeated until the contents of the FIFOs have been outputto the tester. During the load and shift operations the TAM controller706 couples scan in 734 to CSI 1220 and scan in 732 to CSO 1226. The TAMcontroller's scan in 734 and scan out 732 are routed to the DUT's scanin 724 and scan out 726 via the scan router 744.

FIG. 13 illustrates an example implementation of the TAM controller 706.The TAM controller consists of an TAM instruction register (TIR) 1302,an instruction load enable NOR gate 1304, a multiplexer 1306, aninstruction decode circuit 1308, clock gating AND gates 1310, and resetgating NAND gates 1312. The TIR 1302 has an instruction input buscoupled to input bus 720, an instruction output bus coupled to an inputbus of instruction decode circuit 1308, a clock input coupled to theclock signal 804 of control bus 722, and a load enable input coupled tothe output of NOR gate 1304. NOR gate 1304 has inputs coupled to theMode 0-2 signals 1014 of control bus 722 and to the SelectTAM signal802. The output of the NOR gate is coupled to the load enable input ofTIR 1302. If the Mode 0-2 and SelectTAM signals are low, the output ofgate 1304 is high to allow an instruction to be clocked into the TIR1302 from input bus 720. While the “all low” Mode 0-2 input pattern hasbeen used in this example to enable the TIR for an instruction loadoperation, any one of Mode 0-2 input patterns could have been used aswell. Multiplexer 1306 has a data input coupled to a WSO 128 of anassociated core wrapper 102, a data input coupled to a CSO 1226 of anassociated TAM 704, a multiplexer control input coupled to an outputfrom instruction decode circuit 1308, and a data output coupled to scanout signal 732. As seen, the scan in 734 signal passes through the TAMcontroller to the WSI 126 and CSI 1220 signals.

The WRCK gate 1310 inputs the clock 804 and a WRCK enable from decodecircuit 1308, and outputs a gated WRCK to an associated core wrapper102. The count clock gate 1310 inputs the clock 804 and a count clockenable from decode circuit 1308, and outputs a gated count clock to anassociated TAM 704. The compare clock gate 1310 inputs the clock 804 anda compare clock enable from decode circuit 1308, and outputs a gatedcompare clock to an associated TAM 704. The shift clock gate 1310 inputsthe clock 804 and a shift clock enable from decode circuit 1308, andoutputs a gated shift clock to an associated TAM 704. The SDC gate 1310inputs the clock 804 and a SDC enable from decode circuit 1308, andoutputs a gated SDC to an associated TAM 704. The EDC gate 1310 inputsthe clock 804 and a EDC enable from decode circuit 1308, and outputs agated EDC to an associated TAM 704. The MDC gate 1310 inputs the clock804 and a MDC enable from decode circuit 1308, and outputs a gated MDCto an associated TAM 704. The WRST gate 1312 inputs the clock 804 and aWRST enable from decode circuit 1308, and outputs a gated WRST to anassociated core wrapper 102. The Count Reset gate 1312 inputs the clock804 and a Count Reset enable from decode circuit 1308, and outputs agated Count Reset to an associated TAM 704.

Instruction decode circuit 1308 has an input bus for inputting theinstruction from TIR 1302, inputs for inputting Mode 0-2 signals 1014from control bus 722, an input for inputting the SelectTAM signal 802from control bus 722, and an input for inputting the Select signal 736from TAM selector 710. Instruction decode circuit 1308 has outputs forcontrolling the SelectWIR, ShiftWR, CaptureWR, UpdateWR, TransferDR, andWRST signals 124 to an associated core wrapper 102, outputs forcontrolling the load/shift 1222 and count reset 1228 signals to anassociated TAM 704, an output for controlling scan out multiplexer 1306,and the above mentioned outputs for enabling the clock 804 to be gatedthrough one of more selected AND gates 1310 and NAND gates 1312.

The instruction input from TIR 1302 programs how the instruction decodecircuit 1308 controls its outputs in response to the Mode 0-2 inputs1014. The Select input 736 from TAM selector 710 is used to enable ordisable the instruction decode circuit 1308. If the Select input is low,the instruction decode circuit is disabled from responding to the Mode0-2 inputs and all its outputs are set to an inactive state, especiallyoutputs that control clock gates 1310 and reset gates 1312. If theSelect input is high, the instruction decode circuit 1308 is enabled torespond to the Mode 0-2 inputs to control its outputs according to howit is programmed by the current instruction loaded into TIR 1302. TheSelectTAM input 802 from control bus 722 is also used to enable ordisable the instruction decode circuit 1308. If the SelectTAM input islow, the instruction decode circuit is enabled to respond to the Mode0-2 inputs to control its outputs according to the how it is programmedby the current instruction loaded into TIR 1302. If the SelectTAM inputis high, the instruction decode circuit is disabled from responding tothe Mode 0-2 inputs and all its outputs are set to an inactive state,especially the outputs that control clock gates 1310 and reset gates1312. As mentioned in regard to FIGS. 8A and 8B, when SelectTAM is highthe data register of TAM selector 710 loads data from the input bus 720during a clock input on clock signal 804. So the reason to disable theinstruction decode circuit 1308 while SelectTAM is high is to preventthe clock 804 that loads the TAM selector data register from producingan undesired output from any of the outputs of TAM controller 706.Further, while SelectTAM is high, the TIR is disabled, by the outputfrom gate 1304, from inputting data from the input bus 720, since thedata is for the TAM selector 710 and not for the TAM controller 706.

FIG. 14A illustrates in general the operation of the TAM controller 706of FIG. 13 in response to the Mode 0-2 inputs 1014. As seen, when theMode 0-2 signals are low (and SelectTAM is low) the TIR 1302 is loadedwith a TAM instruction. The loaded instruction is decoded by theinstruction decode circuit 1308 to produce instruction definedoperations on the TAM controller outputs in response to the other binaryinput patterns on the Mode 0-2 signals. As seen, the all zero Mode 0-2pattern is reserved for loading an instruction into the TIR 1308 and theother Mode 0-2 patterns are defined by the instruction to control theTAM controller outputs.

Mode 2:1:0=0:0:0—Load TAM Instruction

Mode 2:1:0=0:0:1—Instruction Defined Operation

Mode 2:1:0=0:1:0—Instruction Defined Operation

Mode 2:1:0=0:1:1—Instruction Defined Operation

Mode 2:1:0=1:0:0—Instruction Defined Operation

Mode 2:1:0=1:0:1—Instruction Defined Operation

Mode 2:1:0=1:1:0—Instruction Defined Operation

Mode 2:1:0=1:1:1—Instruction Defined Operation

FIG. 14B illustrates the loading of a WIR Scan instruction into the TIRto enable the WIR 106 of a wrapper 102 connected to the TAM controller706 to be scanned. Scanning the WIR allows loading test instructions toconfigure the wrapper into test modes as described in IEEE standard1500, especially the parallel scan test modes described in regard toFIGS. 3 and 4. During this instruction, the SelectWIR output 124 fromthe instruction decode circuit 1308 is set high to select the WIR forscanning In response to this instruction, the Mode 0-2 input patternsare programmed to produce the following output operations from the TAMcontroller 706. Mode 0-2 input patterns that are not programmed by thisinstruction are defined as no-operation (No-Op) patterns. No-Op patternsdo not produce outputs from the TAM controller.

Mode 2:1:0=0:0:0—Load WIR Scan Instruction

Mode 2:1:0=0:0:1—Capture WIR

Mode 2:1:0=0:1:0—Shift WIR

Mode 2:1:0=0:1:1—Update WIR

Mode 2:1:0=1:0:0—Reset Wrapper

Mode 2:1:0=1:0:1—No-Op

Mode 2:1:0=1:1:0—No-Op

Mode 2:1:0=1:1:1—No-Op

When Mode 2:1:0=0:0:1, a Capture WIR operation occurs which sets theCaptureWR output 124 high and produces a gated clock output on WRCK 124.This operation is used to capture data into the WIR prior shifting theWIR.

When Mode 2:1:0=0:1:0, a Shift WIR operation occurs which sets theShiftWR output 124 high and produces gated clock outputs on WRCK 124.This operation is used to shift an instruction into the WIR via thewrappers WSI and WSO. During this operation, the TAM controller'smultiplexer 1306 is controlled to couple the WSO 128 wrapper output tothe TAM controller's Scan Out 732 output.

When Mode 2:1:0=0:1:1, an Update WIR operation occurs which sets theUpdateWR output 124 high and produces a gated clock output on WRCK 124.This operation is used to update the instruction to the WIR's paralleloutputs.

When Mode 2:1:0=1:0:0, a Reset Wrapper operation occurs which produces agated reset output on WRST 124. This operation is used to reset thewrapper's WIR and other wrapper circuits that need to be reset beforeand/or after a test.

FIG. 14C illustrates the loading of a WBR Scan instruction into the TIRto enable the WBR 110 of a wrapper 102 connected to the TAM controller706 to be scanned. Scanning the WBR enables testing a wrapped core ortesting the interconnects between wrapped cores. During thisinstruction, the SelectWTR output 124 from the instruction decodecircuit 1308 is set low to select the WBR for scanning In response tothis instruction, the Mode 0-2 input patterns are programmed to producethe following output operations from the TAM controller 706. Mode 0-2input patterns that are not programmed by this instruction are definedas no-operation (No-Op) patterns. No-Op patterns do not produce outputsfrom the TAM controller.

Mode 2:1:0=0:0:0—Load WBR Scan Instruction

Mode 2:1:0=0:0:1—Capture WBR

Mode 2:1:0=0:1:0—Shift WBR

Mode 2:1:0=0:1:1—Update WBR

Mode 2:1:0=1:0:0—Reset Wrapper

Mode 2:1:0=1:0:1—No-Op

Mode 2:1:0=1:1:0—No-Op

Mode 2:1:0=1:1:1—No-Op

When Mode 2:1:0=0:0:1, a Capture WBR operation occurs which sets theCaptureWR output 124 high and produces a gated clock output on WRCK 124.This operation is used to capture data into the WBR prior shifting theWBR.

When Mode 2:1:0=0:1:0, a Shift WBR operation occurs which sets theShiftWR output 124 high and produces gated clock outputs on WRCK 124.This operation is used to shift data into and out of the WBR via thewrappers WSI and WSO. During this operation, the TAM controller'smultiplexer 1306 is controlled to couple the WSO 128 wrapper output tothe TAM controller's Scan Out 732 output.

When Mode 2:1:0=0:1:1, an Update WBR operation occurs which sets theUpdateWR output 124 high and produces a gated clock output on WRCK 124.This operation is used to update scanned in data to the WBR's paralleloutputs.

When Mode 2:1:0=1:0:0, a Reset Wrapper operation occurs which produces agated reset output on WRST 124. This operation is used to reset thewrapper's WIR and other wrapper circuits that need to be reset beforeand/or after a test.

FIG. 14D illustrates the loading of a Parallel Scan Test instructioninto the TIR to enable parallel scan paths (112 of FIG. 3 or 406 of FIG.4) of a wrapper 102 connected to the TAM controller 706 and TAM 704 tobe accessed for scan testing. During this instruction, the SelectWIRoutput 124 from the instruction decode circuit 1308 is set low to selectthe wrappers parallel scan paths for scanning In response to thisinstruction the Mode 0-2 input patterns are programmed to produce thefollowing outputs from the TAM controller 706. Mode 0-2 input patternsthat are not programmed by this instruction are defined as no-operation(No-Op) patterns. No-Op patterns do not produce outputs from the TAMcontroller.

Mode 2:1:0=0:0:0—Load Parallel Scan Test Instruction

Mode 2:1:0=0:0:1—Load Stimulus Data

Mode 2:1:0=0:1:0—Load Expected Data

Mode 2:1:0=0:1:1—Load Mask Data

Mode 2:1:0=1:0:0—Shift Scan Paths & Compare Response

Mode 2:1:0=1:0:1—Capture Response into Scan Paths

Mode 2:1:0=1:1:0—Reset Scan Cycle Counter & FIFOs

Mode 2:1:0=1:1:1—No-Op

When Mode 2:1:0=0:0:1, a Load Stimulus Data operation occurs whichproduces a gated clock output on SDC 1002 to load stimulus data into SDM742 from input bus 720. This operation is used to load stimulus datathat will be shifted into the scan paths on the WPI inputs.

When Mode 2:1:0=0:1:0, a Load Expected Data operation occurs whichproduces a gated clock output on EDC 1004 to load expected data into EDM748 from input bus 720. This operation is used to load expected datathat will be compared against the scan path response data output on theWPO outputs.

When Mode 2:1:0=0:1:1, a Load Mask Data operation occurs which producesa gated clock output on MDC 1006 to load mask data into MDM 746 frominput bus 720. This operation is used to load mask data that can be usedto mask off certain ones of the response and expected data compareoperations.

When Mode 2:1:0=1:0:0, a Shift Scan Paths & Compare Response operationoccurs which sets the ShiftWR output 124 high, produces a gated clock onWRCK 124 to shift the scan paths, and a gated clock on Compare Clock 124to compare the scan path response outputs against unmasked expecteddata. This operation is used to shift stimulus data into the scan pathsfrom SDM 742 and compare the scan path response data using thecomparator circuit 750.

When Mode 2:1:0=1:0:1, a Capture Response into Scan Paths operationoccurs which sets the CaptureWR output 124 high, produces a gated WRCK124 to capture data from combinational logic into the scan paths, andproduces a gated Count Clock 1230 to increment the scan cycle counter1210 of compare circuit 750. This operation is used to load the parallelscan paths with response data at the beginning of a new scan cycle shiftoperation and to count each new scan cycle.

When Mode 2:1:0=1:1:0, a Reset Scan Cycle & FIFOs operation occurs whichproduces a gated reset output on Count Reset 1228. This operation isused to reset the TAM's scan cycle counter 1210 and FIFOs 1206-1208before and/or after a test.

FIG. 14E illustrates the loading of a Fail Data Scan instruction intothe TIR to enable fail data in the FIFOs 1206-1208 of the comparecircuit 750 to be scanned out to a tester. In response to thisinstruction, the Mode 0-2 input patterns are programmed to produce thefollowing output operations from the TAM controller 706. Mode 0-2 inputpatterns that are not programmed by this instruction are defined asno-operation (No-Op) patterns. No-Op patterns do not produce outputsfrom the TAM controller.

Mode 2:1:0=0:0:0—Load Fail Data Scan Instruction

Mode 2:1:0=0:0:1—Capture Fail Data

Mode 2:1:0=0:1:0—Shift Fail Data

Mode 2:1:0=0:1:1—No-Op

Mode 2:1:0=1:0:0—No-Op

Mode 2:1:0=1:0:1—No-Op

Mode 2:1:0=1:1:0—No-Op

Mode 2:1:0=1:1:1—No-Op

When Mode 2:1:0=0:0:1, a Capture Fail Data operation occurs which setsthe Load/Shift output 1222 high and produces a gated clock output onShift Clock 1224. This operation is used to capture fail data from theFIFOs 1206-1208 into the shift registers 1212-1214 prior shifting theshift register.

When Mode 2:1:0=0:1:0, a Shift Fail Data operation occurs which sets theLoad/Shift output 1222 low and produces gated clock outputs on ShiftClock 1224. This operation is used to shift the captured fail data fromthe shift register 1212-1214 to a tester via the compare circuit's CSIand CSO. During this operation, the TAM controller's multiplexer 1306 iscontrolled to couple the CSO 1226 compare circuit 750 output to the TAMcontroller's Scan Out 732 output.

FIG. 14F is provided to illustrate that a single instruction can bedefined that performs both the WIR scan operations of FIG. 14B and theWBR scan operations of FIG. 14C. During this instruction, the ShiftWIR124 output would be high during Capture WIR, Shift WIR, and Update WIRMode input patterns to enable scanning the WIR, and low during CaptureWBR, Shift WBR, and Update WBR Mode input patterns to enable scanningthe WBR.

Mode 2:1:0=0:0:0—Load WIR & WBR Scan Instruction

Mode 2:1:0=0:0:1—Capture WIR

Mode 2:1:0=0:1:0—Shift WIR

Mode 2:1:0=0:1:1—Update WIR

Mode 2:1:0=1:0:0—Capture WBR

Mode 2:1:0=1:0:1—Shift WBR

Mode 2:1:0=1:1:0—Update WBR

Mode 2:1:0=1:1:1—Reset Wrapper

As seen from the above descriptions of FIGS. 14A-14F, the TAM controller706 may be programmed to perform any desired output operation inresponse to the Mode 0-2 inputs, by loading an instruction into the TIR1302. While the TAM controller is shown having a particular group ofoutputs and a particular number of Mode 0-2 inputs, it is not limited toonly these outputs and inputs. Indeed, as the need may arise, the numberof TAM controller outputs and/or Mode inputs may increase to allow theTAM controller to control additional circuits within a TAM or othercircuits within the DUT. These additional circuits may be test circuits,debug circuits, trace circuits, and/or emulation circuits.

FIG. 15 illustrates an alternative TAM controller 1502. TAM controller1502 is identical to TAM controller 706 of FIG. 13 with the followingexceptions. The NOR gate 1304 of FIG. 13 has been removed and the loadenable input to TIR 1302 is connected to a LoadTIR signal 1504, which isa signal added to control bus 722. Like the SelectTAM signal, theLoadTIR signal is input to the instruction decode to disable theinstruction decode circuit from responding to Mode 0-2 inputs during aninstruction load. A tester sets the LoadTIR signal high when aninstruction is to be written to TIR 1302 from input bus 720. Using theLoadTIR signal to enable the loading of an instruction into the TIReliminates having to use the all zero Mode 0-2 input pattern as a loadenable for the TIR, as was described in FIG. 13.

FIGS. 16A-16F illustrate the Mode 0-2 signals being programmed tocontrol the TAM controller 1502 output when the LoadTIR signal 1504 isused to load the TIR 1302. FIG. 16A relates to FIG. 14A, FIG. 16Brelates to FIG. 14B, FIG. 16C relates to FIG. 14C, FIG. 16D relates toFIG. 14D, FIG. 16E relates to FIG. 14E, and FIG. 16F relates to FIG.14F. As seen in the FIGS. 16A-16F, the all zero Mode input pattern isnot required to be dedicated for loading the TIR as it was in FIGS.14A-14F. Thus the instruction loaded into the TIR can use all the Mode0-2 input patterns to control the TAM controller 1502 outputs to performtest or other operations.

16A

Mode 2:1:0=0:0:0—Instruction Defined Operation

Mode 2:1:0=0:0:1—Instruction Defined Operation

Mode 2:1:0=0:1:0—Instruction Defined Operation

Mode 2:1:0=0:1:1—Instruction Defined Operation

Mode 2:1:0=1:0:0—Instruction Defined Operation

Mode 2:1:0=1:0:1—Instruction Defined Operation

Mode 2:1:0=1:1:0—Instruction Defined Operation

Mode 2:1:0=1:1:1—Instruction Defined Operation

16B

Mode 2:1:0=0:0:0—Capture WIR

Mode 2:1:0=0:0:1—Shift WIR

Mode 2:1:0=0:1:0—Update WIR

Mode 2:1:0=0:1:1—Reset Wrapper

Mode 2:1:0=1:0:0—No-Op

Mode 2:1:0=1:0:1—No-Op

Mode 2:1:0=1:1:0—No-Op

Mode 2:1:0=1:1:1—No-Op

16C

Mode 2:1:0=0:0:0—Capture WBR

Mode 2:1:0=0:0:1—Shift WBR

Mode 2:1:0=0:1:0—Update WBR

Mode 2:1:0=0:1:1—Reset Wrapper

Mode 2:1:0=1:0:0—No-Op

Mode 2:1:0=1:0:1—No-Op

Mode 2:1:0=1:1:0—No-Op

Mode 2:1:0=1:1:1—No-Op

16D

Mode 2:1:0=0:0:0—Load Stimulus Data

Mode 2:1:0=0:0:1—Load Expected Data

Mode 2:1:0=0:1:0—Load Mask Data

Mode 2:1:0=0:1:1—Shift Scan Paths & Compare Response

Mode 2:1:0=1:0:0—Capture Response into Scan Paths

Mode 2:1:0=1:0:1—Reset Scan Cycle Counter & FIFOs

Mode 2:1:0=1:1:0—No-Op

Mode 2:1:0=1:1:1—No-Op

16E

Mode 2:1:0=0:0:0—Capture Fail Data

Mode 2:1:0=0:0:1—Shift Fail Data

Mode 2:1:0=0:1:0—No-Op

Mode 2:1:0=0:1:1—No-Op

Mode 2:1:0=1:0:0—No-Op

Mode 2:1:0=1:0:1—No-Op

Mode 2:1:0=1:1:0—No-Op

Mode 2:1:0=1:1:1—No-Op

16F

Mode 2:1:0=0:0:0—Capture WIR

Mode 2:1:0=0:0:1—Shift WIR

Mode 2:1:0=0:1:0—Update WIR

Mode 2:1:0=0:1:1—Capture WBR

Mode 2:1:0=1:0:0—Shift WBR

Mode 2:1:0=1:0:1—Update WBR

Mode 2:1:0=1:1:0—Reset Wrapper

Mode 2:1:0=1:1:1—No-Op

FIG. 17 illustrates a timing diagram of the process of selecting a TAMcontroller 706 of FIG. 13, loading an instruction into the selected TAMcontroller 706 using the all zero Mode input pattern, then operating theTAM controller 706 to perform a WIR scan operation to load a testinstruction into the WIR of an associated core wrapper 102. As seen, theTAM controller 706 is selected by setting the SelectTAM input 802 highto load a select TAM instruction 1720 from input bus 720 into the TAMselector 1710 during clock 1702. Once the TAM controller 706 isselected, a TAM instruction 1722 is loaded into the TIR 1302 of theselected TAM controller by inputting an all zero Mode input pattern 1712from Mode 0-2 1014 and applying a clock 1704. As mentioned, in thisexample the TAM instruction loaded into the TIR 1302 programs the TAMcontroller 706 to perform a WIR scan instruction as described above inregard to FIG. 14B. The WIR scan operation consists of: (1) inputting aCapture WIR 1714 Mode input pattern along with a clock 1706 to cause thewrapper's WIR to capture data, (2) inputting a series of Shift WIR 1716Mode input patterns along with clocks 1708 to cause the wrapper's WIR toscan data in 1724 from Scan In 734 and scan data out 1726 on Scan Out732, then (3) inputting an Update WIR 1718 Mode input pattern along witha clock 1710 to update data to the parallel outputs of the WIR. Thesteps in the above described process will typically be performed eachtime a TAM controller is selected, since a TAM instruction willtypically be required to program the TAM controller and a WIRinstruction will be typically required to configure the associatedwrapper for testing.

FIG. 18 illustrates a timing diagram of the process of selecting a TAMcontroller 1502 of FIG. 15, loading an instruction into the selected TAMcontroller 1502 using the LoadTIR signal 1504, then operating the TAMcontroller 1502 perform a WIR scan operation to load a test instructioninto the WIR of an associated core wrapper 102. This process is the sameas described in FIG. 17 with the exception that the LoadTIR signal 1504is used, at 1802, instead of the all zero Mode input pattern at 1712, toload the TAM instruction during clock 1704.

FIG. 19 illustrates a detail timing diagram of the TAM controller 706 or1502 programmed to perform the WIR 106 scan instruction operation ofFIGS. 14B and 16B consisting of capture, shift, and update steps. Whenprogrammed for a WIR scan operation, the TAM controller will set theSelectWIR output high 1938 to enable the wrapper's WIR for scanning. Thecapture step is achieved by inputting a Capture WIR Mode input pattern1912 which sets the CaptureWR output 1922 high, followed by inputting aclock 1902 which produces a WRCK output 1926. The shift steps areachieved by inputting Shift WIR Mode input patterns 1914-1918 which setthe ShiftWR output 1924 high, and inputting clocks 1904-1908 whichproduce WRCKs 1928-1932. The update step is achieved by inputting anUpdate WIR Mode input pattern 1920 followed by inputting a clock 1910which produces a WRCK output 1934. The timing produced by the TAMcontroller on the SelectWIR, CaptureWR, ShiftWR, WRCK, and UpdateWRsignals 124 performs a WIR scan operation as defined in IEEE 1500.However, unlike the IEEE 1500 standard the timing on the ShiftWIR,CaptureWR, ShiftWR, WRCK, and UpdateWR signals 124 are not providedexternally by a tester, but rather are provided internally by the TAMcontroller in response to the external clock 804 and Mode inputs 1014from a tester. Thus the present invention provides a way to producestandard IEEE 1500 wrapper WIR scan control signals from an internalcircuit (i.e. the TAM controller) rather than having to input thewrapper WIR scan control signals from an external tester.

FIG. 20 illustrates a detail timing diagram of the TAM controller 706 or1502 programmed to perform the WBR 110 scan instruction operation ofFIGS. 14C and 16C consisting of capture, shift, and update steps. Whenprogrammed for a WBR scan operation, the TAM controller will set theSelectWIR output low 2038 to enable the wrapper's WBR for scanning Thecapture step is achieved by inputting a Capture WBR Mode input pattern2012 which sets the CaptureWR output 2022 high, followed by inputting aclock 2002 which produces a WRCK output 2026. The shift steps areachieved by inputting Shift WBR Mode input patterns 2014-2018 which setthe ShiftWR output 2024 high, and inputting clocks 2004-2008 whichproduce WRCKs 2028-2032 The update step is achieved by inputting anUpdate WBR Mode input pattern 2020 followed by inputting a clock 2010which produces a WRCK output 2034. The timing produced by the TAMcontroller on the SelectWIR, CaptureWR, ShiftWR, WRCK, and UpdateWRsignals 124 performs a WBR scan operation as defined in IEEE 1500.However, unlike the IEEE 1500 standard the timing on the ShiftWIR,CaptureWR, ShiftWR, WRCK, and UpdateWR signals 124 are not providedexternally by a tester, but rather are provided internally by the TAMcontroller in response to the external clock 804 and Mode inputs 1014from a tester. Thus the present invention provides a way to producestandard IEEE 1500 wrapper WBR scan control signals from an internalcircuit (i.e. the TAM controller) rather than having to input thewrapper WBR scan control signals from an external tester.

FIG. 21 illustrates a detail timing diagram of the TAM controller 706 or1502 programmed to perform the Fail Data Scan instruction operation ofFIGS. 14E and 16E consisting of capture and shift steps. The capturestep is achieved by inputting a Capture Fail Data Mode input pattern2112 which sets the Load/Shift output 1222 high, followed by inputting aclock 2102 which produces a Shift Clock output 2124. The shift steps areachieved by inputting Shift Fail Data Mode input patterns 2114-2120which set the Load/Shift output 1222 low, and inputting clocks 2104-2110which produce Shift Clocks 2126-2132. As seen, the Fail Data Scan timingon the Load/Shift 1222 and Shift Clock 1224 outputs are not providedexternally by a tester, but rather are provided internally by the TAMcontroller in response to the external clock 804 and Mode inputs 1014from a tester. Thus the present invention provides a way to produce FailData Scan control signals from an internal circuit (i.e. the TAMcontroller) rather than having to input the Fail Data Scan signals froman external tester.

FIG. 21A is provided to illustrate that any of the scan operations, WIRscan of FIG. 19, WBR scan of FIG. 20, and Fail Buffer scan of FIG. 21,can use the previously mentioned No-Op Mode patterns to reduce the shiftrate of the WIR, WBR, or Fail Buffer scan paths. As seen in FIG. 21A,one or more No-Op Mode patterns 2040 may be inserted between Shift Modepatterns 2042 to reduce the shift rate of WIR, WBR, or Fail Buffer scanpaths. Reducing the shift rate using No-Op Mode patterns may be requiredif the Clock 804 input frequency from the tester is high to guaranteethat shift operations between daisychained TAMs, cores, or Fail Buffersoperate properly. Also if the Scan Out 732 signal from a device has along return path to the tester and the Clock 804 frequency is high,No-Op Mode patterns can be used to reduce the shift rate to guaranteethat shift operations between the device and tester operates properly.No-Op Mode patterns may be similarly used in any other test or scanoperation shown or implied in this disclosure to reduce testing orshifting rates as required.

FIG. 22 illustrates a detail timing diagram of the TAM controller 706 or1502 programmed to perform the Parallel Scan Test instruction operationof FIGS. 14D and 16D consisting of capture response data, load stimulusdata, load expected data, load mask data, and shift & compare steps.When programmed for a Parallel Scan Test operation, the TAM controllerwill set the SelectWIR output 124 low to enable scan access to thewrapper's parallel scan paths of FIGS. 3 and 4. The capture responsestep is achieved by inputting a Capture Response Mode input pattern 2212which sets the CaptureWR output 124 high, followed by inputting a clock2202 which produces a WRCK output 2228 that captures response data intothe parallel scan paths. The load stimulus data step is achieved byinputting a Load Stimulus Data Mode input pattern 2214 and Stimulus Data2222 on input bus 720, followed by a clock 2204 which produces a SDCclock output 2230 that writes the stimulus data into the SDM 742 of FIG.10. The load expected data step is achieved by inputting a Load ExpectedData Mode input pattern 2216 and Expected Data 2224 on input bus 720,followed by a clock 2206 which produces a EDC clock output 2232 thatwrites the expected data into the EDM 748 of FIG. 10. The load mask datastep is achieved by inputting a Load Mask Data Mode input pattern 2218and Mask Data 2226 on input bus 720, followed by a clock 2208 whichproduces a MDC clock output 2234 that writes the mask data into the MDM746 of FIG. 10. The shift & compare step is achieved by inputting aShift & Compare Mode input pattern 2220 which sets the ShiftWR output124 high, followed by inputting a clock 2210 which produces a WRCK 2236to shift the parallel scan paths one time to load stimulus data from theSDM and a Compare Clock 2238 that compares the response data output fromthe parallel scan paths to unmasked expected data, as described inregard to FIG. 12.

As seen, the Load Stimulus Data, Load Expected Data, Load Mask Data, andShift & Compare steps are repeated in an inner loop 2240 that definesthe shift portion of a scan cycle. The shift portion of a scan cycle isused to fill the parallel scan paths with stimulus data and empty theparallel scan paths of the response data. When the parallel scan pathfilling and emptying process is complete, a new scan cycle is started bythe shown outer loop 2242 which repeats the capture response step byinputting a Capture Response Mode input pattern 2212 and a clock 2202that producing a WRCK 228 to capture response data into the parallelscan paths. The inner and outer loops continue as described until allthe scan cycles required for the test have been executed.

As seen, the Parallel Scan Test timing on the CaptureWR 124, WRCK 124,SDC 1002, EDC 1004, MDC 1006, Compare Clock 1218, and SelectWIR 124outputs are not provided externally by a tester, but rather are providedinternally by the TAM controller in response to the external clock 804and Mode inputs 1014 from a tester. Thus the present invention providesa way to produce Parallel Scan Test control signals from an internalcircuit (i.e. the TAM controller) rather than having to input theParallel Scan Test control signals from an external tester. In should beunderstood that the shown sequences of loading stimulus data first,expected data second, and mask data last are not required to be in thatparticular order.

FIG. 23 is provided to illustrate the timing of back to back responsecapture operations during the Parallel Scan Test operation. Back to backcapture operations are used to improve the ability to do transition andtiming tests using scan paths. As seen the only difference between theParallel Scan Test timing of FIGS. 22 and 23 is that a second CaptureResponse Mode input pattern 2302 is input following the first CaptureResponse Mode input pattern 2212, along with a second clock input 2304that produces a second WRCK output 2306 to cause a second parallel scanpath capture operation.

As mentioned in regard to FIGS. 10 and 11, mask data is required to maskoff unknown scan path response data from being compared to expected dataduring the Compare Clock 1218 from the TAM controller 706 or 1502.However, it is possible to design circuits for scan testing that do notproduce unknown response data, i.e. all the response data from the scanpaths will be known. In this case the need for mask data input to theTAM 704 and circuits in the TAM 704 for storing and using the mask datacan be eliminated.

FIG. 24 is provided to illustrate a TAM 2402 coupled to a core wrapper2404 whose WPOs do not produce unknown response data outputs to comparecircuit 2406. The compare circuit 2406 could simply be compare circuit750 of FIG. 12 with the mask data (MD) bit inputs to each of themaskable comparators 1216 tied or set low so that the expected data (ED)bits and response data (RD) bits are always compared. As seen in FIG.24, the TAM 2402 does not require a MDM 746 as shown in the TAM of FIG.12, and therefore does not require the MDC 1006 input from TAMcontroller 706 to load mask data from input bus 720. However, the TAM2402 could be TAM 704 where the MDM 746 is present but used only once atthe beginning of a test to be loaded with a mask data pattern (all lows)that forces a compare between expected data (ED) and response data (RD)bit inputs to maskable compare circuit 1216.

FIG. 25 is provided to illustrate a detail timing diagram of the TAMcontroller 706 or 1502 programmed to perform the Parallel Scan Testinstruction operation using the TAM 2402 of FIG. 24. The timing isidentical to that of FIG. 22 with the exception that it does not includethe step of loading mask data, since mask data is not required in theparallel scan test since the core wrapper does not output unknownresponse data on WPO. As mentioned, if TAM 2402 is TAM 704, the testercan load the MDM of TAM 704 at the beginning of the test with a maskpattern that enables all compare operations performed during the test.After this one time MDM load, the parallel scan test instruction wouldproceed with the previously described scan cycle inner loop 2240 andouter loop 2242 timing shown in FIG. 22 until all required scan cycleshave been performed.

FIG. 26 is provided to illustrate a detail timing diagram of the TAMcontroller 706 or 1502 programmed to perform the Parallel Scan Testinstruction operation using the TAM 2402 of FIG. 24. The timing isidentical to that of FIG. 23 (i.e. scan testing using back to backresponse captures) with the exception that it does not include the stepof loading mask data, since mask data is not required in the back toback capture parallel scan test since the core wrapper does not outputunknown response data on WPO. As mentioned, if TAM 2402 is TAM 704, thetester can load the MDM of TAM 704 at the beginning of the test with amask pattern that enables all compare operations performed during thetest. After this one time MDM load, the back to back capture parallelscan test instruction would proceed with the previously described scancycle inner loop 2240 and outer loop 2242 timing shown in FIG. 22 untilall required scan cycles have been performed.

As can be seen by comparing the timing of FIG. 25 to FIG. 22 and FIG. 26to FIG. 23, the removal of the mask data load step improves the shiftefficiency of the shift portion of each scan cycle. In FIGS. 22 and 23three load steps (stimulus, expected, and mask) are required prior toperforming the shift & compare step. In FIGS. 25 and 26, only two loadsteps are required (stimulus and expected) prior to performing the shift& compare step. Since the shifting & comparing steps occur at a morerapid rate in FIGS. 25 and 26 than in FIGS. 22 and 23 the time requiredto complete all the scan cycles required for the test is reduced.

As mentioned earlier in regard to FIGS. 14A-14F, the TAM controller 706or 1502 may be programmed to perform any desired output operation inresponse to the Mode inputs, by loading an instruction into the TIR1302. Also a mentioned, the TAM controller may include additionaloutputs and/or additional Mode inputs to allow for controlling othercircuits within a TAM or other circuits within the DUT. These othercircuits may be test circuits, debug circuits, trace circuits, and/oremulation circuits. The following examples illustrate a TAM controller2700 with additional signals added for interfacing to an IEEE 1149.1standard TAP circuit within a core or other circuit within a DUT.

FIG. 27 illustrates a TAM controller 2700 that includes additionalcontrol outputs (TRST, TMS, TCK), an additional data input (TDO), and anadditional data output (TDI) for interfacing with an IEEE 1149.1 TAPcircuit. The IEEE 1149.1 TRST (test reset), TMS (test mode select), TCK(test clock), TDI (test data input), and TDO (test data output) signalsare well known. TAM controller 2700 is identical to TAM controller 706of FIG. 13 with the exception of these additional output and inputsignals. The instruction decode circuit 2712 of TAM controller 2700 isidentical to the instruction decode circuit 1308 of TAM controller 706with the exception that it is designed to additionally decode the Modeinputs 1014 to operate these signals in response to an instructionloaded in the TIR 1302. The multiplexer 2714 of TAM controller 2700 isidentical to multiplexer 1306 with the exception that multiplexer 2714has an additional input for coupling the TDO signal 2710 to the Scan Out732 signal. As seen, the Scan In signal 734 is additionally coupled tothe TDI signal 2708. The TRST, TMS, and TCK signals are for controllingthe operation of TAP circuit. The TDI signal is for inputting data to aTAP circuit. The TDO signal is for inputting data from a TAP circuit. Itshould be understood that the TAM controller 1502 of FIG. 15 could beequally modified as described above if desired.

FIG. 28 illustrates the TAM controller 2700 interfaced to a TAP circuit2802. The TAP circuit 2802 can be a circuit used for performing a testoperation, a debug operation, a trace operation, an emulation operation,and/or an in-circuit programming operation. The TAP circuit 2802 may bea circuit within a core of a DUT, a circuit within a circuit notconsidered to be a core of a DUT, or a circuit separate from cores andother circuits within a DUT that is required to perform one of the aboveor other functions required within the DUT. The TAP circuit 2802contains a finite state machine, an instruction register, and aplurality of data registers. The TMS and TCK signals regulate theoperation of the finite state machine to control the access to theinstruction register or the plurality of data registers. The TRST signalis for resetting the TAP circuit. The TDI and TDO signals are forcommunicating data to instruction register or plurality of dataregisters.

Mode input pattern definition 2804 is like that previously shown inFIGS. 14A-14F in that it illustrates the loading of a TAP Scaninstruction into the TIR 1302 of the TAM controller 2700 using the allzero input pattern. In response to this instruction, the Mode 0-2 inputpatterns are programmed in the instruction decode circuit 2712 toproduce the following output operations from the TAM controller 2700.Mode 0-2 input patterns that are not programmed by this instruction aredefined as no-operation (No-Op) patterns. No-Op patterns do not produceoutputs from the TAM controller.

When Mode 2:1:0=0:0:1, a Set TMS High & Do TCK operation occurs whichsets the TMS 2704 signal high and produces a gated clock output on TCK2706. This operation is used to move the finite state machine within theTAP circuit 2802 through states.

When Mode 2:1:0=0:1:0, a Set TMS Low & Do TCK operation occurs whichsets the TMS 2704 signal low and produces a gated clock output on TCK2706. This operation is used to move the finite state machine within theTAP circuit 2802 through states.

When Mode 2:1:0=0:1:1, a Reset TAP operation occurs which produces agated reset output on TRST 2702. This operation is used to resetcircuitry within the TAP circuit.

The finite state machine within the TAP circuit responds to TMS and TCKto transition through a standard set of 16 states. The logic levelpresent on TMS when a TCK occurs determines the state transitions. Thesestate transitions are used to perform Instruction Scan, Data Scan,Run/Test Idle, and Test Reset functions. The instruction scan statetransitions include among other states, a state for capturing data intothe instruction register of the TAP circuit, a state for shifting datainto the instruction register via TDI and from the instruction registervia TDO, and a state for updating data from the instruction register.The data scan state transitions include among other states, a state forcapturing data into a selected data register within the TAP circuit, astate for shifting data into the selected data register via TDI and fromthe select data register via TDO, and a state for updating data from theselected data register. Run/Test Idle is a state where the TAP circuittransitions to when it is idle or running a test. Test Reset is a statewhere the TAP circuit transition to when it is to be held in a resetcondition. The operation of the finite state machine of TAP circuits inresponse to the TMS and TCK inputs is well known.

When the TAP circuit is performing an instruction or data scanoperation, the TDI input to the TAP circuit will be driven by anexternal tester via Scan In signal 734 of the TAM controller and the TDOoutput signal from the TAP circuit received by an external tester viathe Scan Out 732 of the TAM controller. During the TAP scan instruction,the decode circuit 2712 of the TAM controller will output control tomultiplexer 2714 to couple TDO 2710 to Scan Out 732.

FIG. 29 illustrates DUT 2902 interfaced to an external controller 2924for test, debug, trace, and/or emulation operations using the abovedescribed 1149.1 TAP interface of TAM controller 2700. Forsimplification, the scan router 744 and TAM selector 710 circuits arenot shown in the DUT. The DUT has a TAM 2908 which can be either a TAM704 or 2402, a core 2904 including a 1500 wrapper 102 and a 1149.1 TAPcircuit 2802, another circuit 2906 having a 1149.1 TAP circuit 2802, anda TAM controller 2700. The TAM is interfaced to the core wrapper's WPIand WPO buses via bus 2910, to the input bus 720 from externalcontroller 2924, and to the TAM controller 2700 via bus 2912, whichincludes CSI 1008, CSO 1012, compare circuit control signals 1010, SDC1002, EDC 1004, and MDC 1006. The core's 1500 wrapper 102 is interfacedto the TAM controller 2700 via bus 2914 which includes WSI 126, WSO 128,and wrapper control signals 124. The core's 1149.1 TAP circuit 2802 isinterfaced to TAM controller 2700 via bus 2916, which includes TDI 2708,TDO 2710, TCK 2706, TMS 2704, and TRST 2702. The other circuit's 2906TAP circuit 2802 is interfaced to TAM controller 2700 via bus 2918,which includes another set of TDI 2708, TDO 2710, TCK 2706, TMS 2704,and TRST 2702 signals. The other circuit 2906 may be interfaced to thecore 2904 via bus 2920 to participate in a test, debug, trace, and/oremulation operation along with core 2904. The TAM controller 2700 isinterfaced to the external controller 2924 for controlling test, debug,trace, and/or emulation operations via 2922, which includes input bus720, Mode 0-2 inputs 1014, clock input 804, SelectTAM input 802, Scan In734, Scan Out 732, and if used LoadTIR signal 1504. The externalcontroller can perform parallel scan testing of the core circuit 2904 aspreviously described using TAM 2908 and core wrapper 102. The externalcontroller can additionally perform test, debug, trace, and/or emulationof the core using the TAM controller's 1149.1 interface to the corecircuit's 2904 TAP circuit 2802 and/or to the other circuit's 2902 TAPcircuit 2802. The TAP circuit 2802 of the other circuit 2906 may performother operations as well, such as DUT fuse programming, DUT securityprogramming, and DUT memory repair.

While the present invention up to now has described a TAM controllerbeing associated with each TAM and wrapper in a DUT (see FIG. 7), asingle system level TAM controller may be used to control multiple TAMsand wrappers as well. The following FIGS. 30-34 illustrate the presentinvention using a single system TAM controller to control multiple TAMs,multiple wrappers, and multiple TAP circuits within a DUT.

FIG. 30 illustrates a DUT test architecture 3002 consisting of cores3004 1-N each having a wrapper 102, an embedded TAP circuit 2802, and anassociated TAM 3006 1-N. The associated TAMs may be a TAM 704 of FIG. 10or a TAM 2402 of FIG. 24. The wrappers, TAP circuits, and TAMs areseparately interfaced to a system TAM controller 3008 via buses 3010 and3012. Buses 3010 and 3012 consist of core wrapper interface signals WSI126, WSO 128, and wrapper control signals 124, TAP circuit interfacesignals TDI 2708, TDO 2710, TMS 2704, TCK 2806, and TRST 2702, TAMinterface signals SDC 1002, EDC 1004, MDC 1006, CSI 1008, CSO 1012, andcompare circuit control signals 1010. Each TAM 3006 also receives theinput bus 720 from an external tester/controller 3014. The system TAMcontroller 3008 is interfaced to the external tester/controller 3014 viainput bus 720, Mode signals 1014, clock signal 804, LoadTIR signal 1504,Scan In signal 734, and Scan Out signal 732. In this and other examplesin FIGS. 31-34, the previously described LoadTIR 1504 signal of FIG. 15will be used to load instructions into the TIR 1302 of system TAMcontroller 3014 instead of using a Mode input pattern as described inFIG. 13. It should be clear however that a Mode input pattern could havebeen used to load the TIR as well. In comparing the DUT testarchitecture of FIG. 30 to the DUT test architecture of FIG. 13 it isseen that the TAM selector 710 and Scan Router 744 circuits of FIG. 13are missing in the architecture of FIG. 30. The TAM selector 710 is notrequired, nor the SelectTAM signal 802, because only one system TAMcontroller 3008 exists in the architecture and it is always selected tointerface to the external tester/controller 3014 when the DUT is in testmode. The Scan Router 744 is not shown because the scan routing functionhas been moved into the system TAM controller 3008, as will be describedin FIG. 31.

FIG. 31 illustrates system TAM controller 3008 in more detail. SystemTAM controller 3008 consists of a TIR 1302, an instruction decodecircuit 3102, and a Scan Router 3104. Loading of the TIR occurs asdescribed in FIG. 15 using the LoadTIR signal 1504. The instructionloaded into the TIR programs how the instruction decode circuit 3102responds to Mode input patterns 1014 to control its outputs, also asdescribed in FIG. 15. As seen, the instruction decode circuit 3102 hasoutputs that are input to circuit boxes 3106 and 3108, and outputs thatcontrol the scan routing function of Scan Router 3104. Circuit box 3106outputs signals on bus 3010 that in this example are the output signalsshown in FIG. 27, including WRCK, Count Clock Compare Clock, ShiftClock, SDC, EDC, MDC, SelectWIR, ShiftWR, CaptureWR, UpdateWR,TransferDR, WRST, Load/Shift, Count Reset, TRST, TMS, and TCK outputs.In addition, bus 3110 also includes the TDI-1, WSI-1, CSI-1, TDO-1,WSO-1, and CSO-1 signals interfaced to the Scan Router 3104. Circuit box3108 outputs signals on bus 3012 that in this example are also theoutputs shown in FIG. 27, including WRCK, Count Clock Compare Clock,Shift Clock, SDC, EDC, MDC, SelectWIR, ShiftWR, CaptureWR, UpdateWR,TransferDR, WRST, Load/Shift, Count Reset, TRST, TMS, and TCK outputs.In addition, bus 3112 also includes the TDI-N, WSI-N, CSI-N, TDO-N,WSO-N, and CSO-N signals interfaced to the Scan Router 3104. Circuitboxes 3106 and 3108 simply illustrate the clock gating, reset gating,and wiring shown in FIG. 27 between the instruction decode circuit'soutputs and the output buses 3010 and 3012 of system TAM controller3008. In response to an instruction loaded into the TIR, the system TAMcontroller 3008 responds to Mode input patterns 1014 to output controlsignals on bus 3010 or bus 3012, output data on selected data signals ofbus 3010 or 3012, and input data from selected data signals of bus 3010or 3012.

If the instruction is for scanning a TAP circuit 2802 within core 1, theinstruction decode circuit 3102 of the TAM controller 3008 will outputcontrol to the Scan Router 3104 to couple Scan In 734 to TDI-1 and ScanOut 732 to TDO-1, followed by outputting control on bus 3010 to controlthe TAP circuit 2802 to scan data as described in regard to FIG. 28. Ifthe instruction is for scanning the wrapper 102 of core 1, theinstruction decode circuit 3102 of the TAM controller 3008 will outputcontrol to the Scan Router 3104 to couple Scan In 734 to WSI-1 and ScanOut 732 to WSO-1, followed by outputting control on bus 3010 to controlthe wrapper 102 to scan data as described in regard to FIGS. 19 and 20.If the instruction is for scanning the compare circuit 750 of TAM 1 ofcore 1, the instruction decode circuit 3102 of the TAM controller 3008will output control to the Scan Router 3104 to couple Scan In 734 toCSI-1 and Scan Out 732 to CSO-1, followed by outputting control on bus3010 to control the compare circuit 750 to scan data as described inregard to FIG. 21. If the instruction is for operating TAM 1 and thewrapper of core 1 to perform a parallel scan test, the instructiondecode circuit 3102 of the TAM controller 3008 will output control onbus 3010 to perform the response capture, data (stimulus, expected,mask) input, and shift & compare steps as described in regard to FIGS.22 and 23.

If the instruction is for scanning a TAP circuit 2802 within core N theinstruction decode circuit 3102 of the TAM controller 3008 will outputcontrol to the Scan Router 3104 to couple Scan In 734 to TDI-N and ScanOut 732 to TDO-N, followed by outputting control on bus 3012 to controlthe TAP circuit 2802 to scan data as described in regard to FIG. 28. Ifthe instruction is for scanning the wrapper 102 of core N, theinstruction decode circuit 3102 of the TAM controller 3008 will outputcontrol to the Scan Router 3104 to couple Scan In 734 to WSI-N and ScanOut 732 to WSO-N, followed by outputting control on bus 3012 to controlthe wrapper 102 to scan data as described in regard to FIGS. 19 and 20.If the instruction is for scanning the compare circuit 750 of TAM N ofcore N, the instruction decode circuit 3102 of the TAM controller 3008will output control to the Scan Router 3104 to couple Scan In 734 toCSI-N and Scan Out 732 to CSO-N, followed by outputting control on bus3012 to control the compare circuit 750 to scan data as described inregard to FIG. 21. If the instruction is for operating TAM N and thewrapper of core N to perform a parallel scan test, the instructiondecode circuit 3102 of the TAM controller 3008 will output control onbus 3012 to perform the response capture, data (stimulus, expected,mask) input, and shift & compare steps as described in regard to FIGS.22 and 23.

Instructions can be input to the system TAM controller 3008 to cause theScan Router 3104 to place multiple wrappers in series between Scan In734 and Scan Out 732 to facilitate scanning instructions or data throughmultiple wrappers. Instructions can also be input to the system TAMcontroller 3008 to cause the Scan Router 3104 to place multiple TAPcircuits in series between Scan In 734 and Scan Out 732 to facilitatescanning instructions or data through multiple TAP circuits.Instructions can also be input to the system TAM controller 3008 tocause the Scan Router 3104 to place multiple TAM compare circuits 750 inseries between Scan In 734 and Scan Out 732 to facilitate scanning faildata from multiple compare circuits.

FIG. 32 illustrates a DUT test architecture 3202 consisting of cores3204 1-N each having a wrapper 102, an embedded TAP circuit 2802, and anassociated TAM 3206 1-N. The wrappers, TAP circuits, and TAMs arecommonly interfaced to a system TAM controller 3208 via a bus 3210. Thesystem TAM controller outputs an Enable-1 signal 3212 to core 1'swrapper, TAP circuit, and TAM 1, and an Enable-N signal 3214 to core N'swrapper, TAP circuit, and TAM N. The Enable 1 signal enables core 1'swrapper, TAP circuit, and TAM 1 to operate using bus 3210 from systemTAM controller 3208. The Enable N signal enables core N's wrapper, TAPcircuit, an TAM N to operate using bus 3210 from system TAM controller3208. Except for the use of a common bus 3210 and Enable signals 1-Nfrom system TAM controller 3208, the architecture is similar to thatdescribed in FIG. 30.

FIG. 33 illustrates system TAM controller 3208 in more detail. SystemTAM controller 3208 consists of a TIR 1302, an instruction decodecircuit 3302, and a Scan Router 3104. Loading of the TIR occurs asdescribed in FIG. 15 using the LoadTIR signal 1504. The Scan Router 3104is similar to the previously described Scan Router 744 in that it allowscoupling the Scan In 734 and Scan Out 732 of the system TAM controllerto one or more serially accessible circuits (i.e. TAM circuit, TAPcircuit, Wrapper circuit). The instruction loaded into the TIR programshow the instruction decode circuit 3302 responds to Mode input patterns1014 to control its outputs, also as described in FIG. 15. As seen, theinstruction decode circuit 3302 has outputs that are input to circuitbox 3106, outputs for Enable 1 3212 and Enable N 3214, and outputs thatcontrol the scan routing function of Scan Router 3104. Circuit box 3106outputs signals on bus 3210 that in this example are the outputs shownin FIG. 27, including WRCK, Count Clock Compare Clock, Shift Clock, SDC,EDC, MDC, SelectWIR, ShiftWR, CaptureWR, UpdateWR, TransferDR, WRST,Load/Shift, Count Reset, TRST, TMS, and TCK outputs. In addition, bus3210 also includes the TDI-1, TDI-N, WSI-1, WSI-N, CSI-1, CSI-N, TDO-1,TDO-N, WSO-1, WSO-N, CSO-1, and CSO-N signals interfaced to the ScanRouter 3104. Circuit box 3106 simply illustrates the clock gating, resetgating, and wiring shown in FIG. 27 between the instruction decodecircuit's outputs and the output bus 3210 of system TAM controller 3208.In response to an instruction loaded into the TIR, the system TAMcontroller 3208 responds to Mode input patterns 1014 to output controlsignals on bus 3210, output data on selected data signals of bus 3210,and input data from selected data signals of bus 3210.

If the instruction is for scanning a TAP circuit 2802 within core 1, theinstruction decode circuit 3302 of the TAM controller 3208 will set theEnable-1 output 3212 high, output control to the Scan Router 3104 tocouple Scan In 734 to TDI-1 and Scan Out 732 to TDO-1, followed byoutputting control on bus 3210 to control the TAP circuit 2802 to scandata as described in regard to FIG. 28. If the instruction is forscanning the wrapper 102 of core 1, the instruction decode circuit 3302of the TAM controller 3208 will set the Enable-1 output 3212 high,output control to the Scan Router 3104 to couple Scan In 734 to WSI-1and Scan Out 732 to WSO-1, followed by outputting control on bus 3210 tocontrol the wrapper 102 to scan data as described in regard to FIGS. 19and 20. If the instruction is for scanning the compare circuit 750 ofTAM 1 of core 1, the instruction decode circuit 3302 of the TAMcontroller 3208 will set the Enable-1 output 3212 high, output controlto the Scan Router 3104 to couple Scan In 734 to CSI-1 and Scan Out 732to CSO-1, followed by outputting control on bus 3210 to control thecompare circuit 750 to scan data as described in regard to FIG. 21. Ifthe instruction is for operating TAM 1 and the wrapper of core 1 toperform a parallel scan test, the instruction decode circuit 3302 of theTAM controller 3208 will set the Enable-1 output 3212 high, outputcontrol on bus 3210 to perform the response capture, data (stimulus,expected, mask) input, and shift & compare steps as described in regardto FIGS. 22 and 23.

If the instruction is for scanning a TAP circuit 2802 within core N theinstruction decode circuit 3302 of the TAM controller 3208 will set theEnable-N output 3214 high, output control to the Scan Router 3104 tocouple Scan In 734 to TDI-N and Scan Out 732 to TDO-N, followed byoutputting control on bus 3210 to control the TAP circuit 2802 to scandata as described in regard to FIG. 28. If the instruction is forscanning the wrapper 102 of core N, the instruction decode circuit 3302of the TAM controller 3208 will set the Enable-N output 3214 high,output control to the Scan Router 3104 to couple Scan In 734 to WSI-Nand Scan Out 732 to WSO-N, followed by outputting control on bus 3210 tocontrol the wrapper 102 to scan data as described in regard to FIGS. 19and 20. If the instruction is for scanning the compare circuit 750 ofTAM N of core N, the instruction decode circuit 3302 of the TAMcontroller 3208 will set the Enable-N output 3214 high, output controlto the Scan Router 3104 to couple Scan In 734 to CSI-N and Scan Out 732to CSO-N, followed by outputting control on bus 3210 to control thecompare circuit 750 to scan data as described in regard to FIG. 21. Ifthe instruction is for operating TAM N and the wrapper of core N toperform a parallel scan test, the instruction decode circuit 3302 of theTAM controller 3208 will set the Enable-N output 3214 high, outputcontrol on bus 3210 to perform the response capture, data (stimulus,expected, mask) input, and shift & compare steps as described in regardto FIGS. 22 and 23.

Instructions can be input to the system TAM controller 3208 to cause theScan Router 3104 to place multiple wrappers in series, via their WSIsand WSOs, between Scan In 734 and Scan Out 732 to facilitate scanninginstructions or data through multiple wrappers. Instructions can also beinput to the system TAM controller 3208 to cause the Scan Router 3104 toplace multiple TAP circuits in series, via their TDIs and TDOs, betweenScan In 734 and Scan Out 732 to facilitate scanning instructions or datathrough multiple TAP circuits. Instructions can also be input to thesystem TAM controller 3208 to cause the Scan Router 3104 to placemultiple TAM compare circuits 750 in series, via their CSIs and CSOs,between Scan In 734 and Scan Out 732 to facilitate scanning fail datafrom multiple TAM compare circuits.

FIG. 34 illustrates the core 1 3204 and TAM 1 3206 circuits of FIG. 32in more detail. The TAM circuit 3206 is the same as the TAM circuit 704of FIG. 10 with the exception that the SDM 742, compare circuit 750, EDM748, and MDM 746 include an input for receiving the Enable-1 signal 3212from system TAM controller 3208. The Enable-1 signal is used to enableor disable the SDM, compare circuit, EDM, and MDM. The core 1 circuit isthe same as the core circuit 708 of FIG. 10 with the exceptions that;(1) the core 1 circuit 3204 includes an 1149.1 TAP circuit 2802 andinterface, and (2) the core 1 circuit 3204 has an input for receivingthe Enable-1 signal 3212. The Enable-1 signal is used to enable ordisable the 1500 wrapper and 1149.1 TAP circuits and interfaces of core1.

If core 1 3204 and TAM 1 3206 are to be accessed for a test, debug,trace, and/or emulation operation, the system TAM controller 3014 willset the Enable-1 signal to a value that enables core 1's 1500 and 1149.1circuits, and the circuits within TAM 3206. While enabled, the TAM 1 and1500 and 1149.1 circuits in core 1 respond to the control & data bus3210 from the system TAM controller to perform the desired operation. Ifthe Enable-1 signal 3212 is not set to a value that enables the core 1wrapper, TAP, and TAM circuits, the circuits do not respond to thecontrol & data bus 3210 from the system TAM controller. Circuit 3402shows one example way of how the control inputs to the wrapper, TAP, andTAM circuits of FIG. 34 can be enabled or disabled using an And gate3404 by the Enable-1 signal. Control In of circuit 3402 can be any ofthe control inputs from control & data bus 3210 (i.e. SDC 1002, EDC1004, MDC 1006, compare circuit 750 control signals 1010 (except forCount Reset 1228), TAP circuit 2802 control signals 3404 (except forTRST 2702), or wrapper circuit 102 control signals 124 (except for WRST124). If Enable-1 is low, the Control Out signal of circuit 3402 isgated off low. If Enable-1 is high, the Control Out signal of circuit3402 is gated on to be driven by the Control In signal of circuit 3402.The Count Reset, TRST, and WRST signals are preferably not gated on andoff using And gate 3404, as this would force a reset condition on theTAM compare circuit 750, TAP circuit 2802, and wrapper circuit 102 whenthe TAM and core 1 circuits are disabled from responding to the control& data bus 3210. The reason for this is that it may be required toenable and set up a test, debug, trace, and/or emulation operation in aplurality of cores and TAMs by enabling and setting up each core and TAMin a sequence. If circuits within the cores and TAMs were reset whenthey are disabled, the set up conditions loaded in the cores and TAM(especially the instruction registers of the wrapper and/or TAPcircuits) would be cleared out. Due to this, it is preferred to not gatethe reset inputs to core and TAM circuits when a plurality of cores andTAM are required to be set up to participate in a test, debug, trace,and/or emulation operation. However, if test, debug, trace, and/oremulation operations are only performed on one core and TAM at a time,it would be acceptable to gate the reset inputs to core and TAM circuitssince the access to these circuits would be completed when they aredisabled. While not shown in FIG. 34, the Core N 3204 and TAM N 3206 ofFIG. 32 can be similarly enabled or disabled by the Enable-N signal fromthe system TAM controller 3208 to respond or not respond the control &data bus 3210.

While the cores of FIGS. 30 and 32 were shown to include TAP circuits2802 and the system TAM controllers of FIGS. 30 and 32 were shown toinclude interfaces for the TAP circuits 2802, it should be understoodthat FIGS. 30 and 32 could represent cores without TAP circuits andsystem TAM controllers without TAP circuit interfaces as well. WithoutTAP circuits, the cores would only have a wrapper 102 interface and thesystem TAM controllers would only have an interface for communicatingwith the core wrapper and TAM circuits.

In summarizing the architectures of the present invention, it is seenthat the architecture of FIG. 7 uses a TAM controller 706 for each TAM704 and Core 708 combination, the architecture of FIG. 30 uses onesystem TAM controller 3008 for all TAM 3006 and Core 3004 combinations,and the architecture of FIG. 32 uses one system TAM controller 3208 forall TAM 3206 and Core 3204 combinations. The architectures of FIGS. 30and 32 differ in that the system TAM controller 3008 of FIG. 300accesses each Core and TAM combination using a separate bus 3010-3012,whereas the system TAM controller 3208 of FIG. 32 accesses each Core andTAM combination using a common bus 3212 through the use of Enablesignals 3212-3214.

FIG. 35 illustrates a testing arrangement of the present inventionwhereby a tester 3502 is interfaced to a plurality of DUTs 1-N 3504. TheDUTs include one of the test architectures described in regard to FIGS.7, 30, and 32. The tester has an interface to each DUT's testarchitecture consisting of an input bus 720, a control bus 3506, Scan In724 or 734, and Scan Out 726 or 732. If the DUT architecture is thearchitecture of FIG. 7, the control bus 3506 will consist of Mode 0-2inputs 1014, Clock 804, and SelectTAM 802 signals. If the LoadTIR signalof FIG. 15 is used to load the TIR 1302 instead of a Mode input pattern,the control bus 3506 will additionally include the LoadTIR signal 1504.If the DUT architecture is the architecture of FIG. 30 or 32, thecontrol bus 3506 will consist of Mode 0-2 inputs 1014, Clock 804, andLoadTIR 1504 signals. If a Mode input 1014 pattern is used to load theTIR 1302, the LoadTIR 1504 signal can be deleted from control bus 3506.Since the tester has an interface to each DUT, all DUTs can be testedsimultaneously by the tester operating all the DUT interfaces inparallel. At the end of test, the tester can operate the DUT interfacesto scan out the fail data from the DUT compare circuits 750.

FIG. 36 illustrates an alternate testing arrangement of the presentinvention whereby a tester 3502 is interfaced to a plurality of strings3602 of DUTs 3504. As with FIG. 35, the DUTs 3504 include one of thetest architectures described in regard to FIGS. 7, 30, and 32. Thetester has an interface to each DUT string 3602 consisting of an inputbus 720, a control bus 3506, Scan In 724 or 734, and Scan Out 726 or732. As with FIG. 35, if the DUTs in the strings 3602 use thearchitecture of FIG. 7, the control bus 3506 to the strings will consistof Mode 0-2 inputs 1014, Clock 804, and SelectTAM 802 signals. If theLoadTIR signal of FIG. 15 is used to load the TIR 1302 instead of a Modeinput pattern, the control bus 3506 to the strings will additionallyinclude the LoadTIR signal 1504. If the DUTs in the strings 3602 use thearchitecture of FIG. 30 or 32, the control bus 3506 to the strings willconsist of Mode 0-2 inputs 1014, Clock 804, and LoadTIR 1504 signals. Ifa Mode input 1014 pattern is used to load the TIR 1302, the LoadTIR 1504signal can be deleted from control bus 3506 to the strings. Since thetester has an interface to each DUT string 3602, all DUT strings can betested simultaneously by the tester operating all the DUT stringinterfaces in parallel. At the end of test, the tester can operate theDUT string interfaces to scan out the fail data from the comparecircuits 750 of each DUT in each DUT string.

In the testing arrangement of FIG. 35 it is seen that if the tester 3502has M number of DUT interfaces, each interface including input bus 720,control bus 3506, Scan In 724 or 734, and Scan Out 726 or 732, M DUTsmay be simultaneously tested. However, in the DUT string testingarrangement of FIG. 36 it is seen that the same tester 3502 with Minterfaces can simultaneously test M DUT strings 3602. If each of the Mstrings 3602 contains N DUTs, the number of DUTs that can besimultaneously tested using the same tester 3502 is M times N. Thus thetesting arrangement of FIG. 36 is advantageous over that of FIG. 35 inthat it allows for simultaneously testing a larger number of DUTs byplacing the DUTs in a string that is interfaced to the tester via one ofthe tester's M interfaces. While the test architectures and interfacesof the present invention have been designed to allow either the testingarrangement of FIG. 35 or testing arrangement of FIG. 36, the testingarrangement of FIG. 36 may in some cases be preferred since it decreasesDUT test time and cost by allowing for more DUTs to be testedsimultaneously. The DUTs 3504 of FIGS. 35 and 36 may be die on wafer,singulated die, or packaged integrated circuits.

As seen in FIGS. 35 and 36 a parallel input bus 720 requires N parallelsignal connections between the tester and DUTs. In some testarrangements it may be desired to utilize a serial input bus rather thana parallel input bus 720 to decrease the number of signal connectionsbetween the tester and DUTs. The following FIGS. 37-45 illustrate howthe present invention can use a serial bus instead of a parallel inputbus 720 to reduce the number of DUT connections to a tester.

FIG. 37 illustrates a DUT test architecture having TAMs 3706, TAMcontrollers 3710, TAM Selector 3712, and Scan Router 744. The DUT testarchitecture is interfaced to a Tester 3704. The DUT test architectureand interface to the tester is similar to that shown in FIG. 10 with thefollowing exceptions. A serial input bus 3714 is used to input data tothe TAMs, 3706 TAM controllers 3710, and TAM Selector 3712 instead ofthe parallel input bus 720. The data register (3810 of FIG. 38) withinthe TAM selector 3712 is a serial input data register (i.e. a shiftregister) instead of the parallel input data register 806/808 of the TAMSelector of FIGS. 8A and 8B. The TIRs (3808 of FIG. 38) within the TAMcontrollers 3710 are serial input TIRs (i.e. shift registers) instead ofthe parallel input TIR 1302 shown in TAM controller 706 of FIG. 13. TheSDMs (3802 of FIG. 38) of TAMs 3706 are serial input SDMs (i.e. shiftregisters) instead of the parallel input SDM 742 of FIG. 10. The EDMs(3804 of FIG. 38) of TAMs 3706 are serial input EDMs instead of theparallel input EDM 748 of FIG. 10. The MDMs (3806 of FIG. 38) of TAMs3706 are serial input MDMs instead of the parallel input MDM 746 of FIG.10.

In FIG. 38 a first example serial input bus 3714 is shown comprising asingle serial data input signal. As seen, the serial data input signalof bus 3714 is coupled to the serial inputs of the SDM 3802, EDM 3804,MDM 3806, TIR 3808, and data register 3810. To load a TAM select datapattern into data register 3810, the SelectTAM signal 802 is set highand a number of clock inputs 804 are applied to clock the serial datapattern from the input bus 3714 into the serial input of the dataregister, as per the timing diagram 3812. To load an instruction intothe TIR 3808, the LoadTIR signal 1504 is set high and a number of clockinputs 804 are applied to clock the serial instruction data from theinput bus 3714 into the serial input of the TIR, as per timing diagram3814. To load stimulus data into the SDM 3802, a number of Mode inputpatterns 1014 (like the single Load Stimulus Data Mode input pattern2214 of FIG. 22) are input to the TAM controller 3710 to produce thenumber of SDC outputs 1002 required to clock serial stimulus data frominput bus 3714 into the serial input of the SDM, as per timing diagram3816. To load expected data into the EDM 3804, a number of Mode inputpatterns 1014 (like the single Load Expected Data Mode input pattern2216 of FIG. 22) are input to the TAM controller 3710 to produce thenumber of EDC outputs 1004 required to clock serial expected data frominput bus 3714 into the serial input of the EDM, as per timing diagram3818. To load mask data into the MDM 3806, a number of Mode inputpatterns 1014 (like the single Load Mask Data Mode input pattern 2218 ofFIG. 22) are input to the TAM controller 3710 to produce the number ofMDC outputs 1006 required to clock serial mask data from input bus 3714into the serial input of the MDM, as per timing diagram 3820. Note thateach serial operation, i.e. the timing diagrams 3812-3820, occurs atdifferent times since the single input on bus 3714 can only input to oneof the shift registers (SDM 3802, EDM 3804, MDM 3806, TIR 3808, and dataregister 3810) at a time.

The parallel scan test timing of the TAMs 3706 and TAM controllers 3710of FIG. 37 are similar to that previously described in FIGS. 22 and 23with the exception that multiple Load Stimulus Data Mode patterns 2214,multiple Expected Data patterns 2216, and multiple Load Mask Data Modepatterns 2218 are required to be executed in the TAMs and TAMcontrollers of FIG. 37 since the stimulus, expected, and mask data isloaded serially instead of in parallel as in the TAM and TAM controllerof FIG. 10.

In FIG. 39 a second example serial input bus 3714 is shown comprisingthree serial data input signals 3902-3906. As seen, the serial datainput 3902 of bus 3714 is coupled to the serial input of the SDM 3802,the serial data input 3904 of bus 3714 is coupled to EDM 3804, and theserial data input 3906 is coupled to the serial inputs of the MDM 3806,TIR 3808, and data register 3810. To load a TAM select data pattern intodata register 3810, the SelectTAM signal 802 is set high and a number ofclock inputs 804 are applied to clock the serial data pattern fromserial data input 3906 of bus 3714 into the serial input of the dataregister, as per the timing diagram 3908. To load an instruction intothe TIR 3808, the LoadTIR signal 1504 is set high and a number of clockinputs 804 are applied to clock the serial instruction data from serialinput 3906 of bus 3714 into the serial input of the TIR, as per timingdiagram 3910. To simultaneously load stimulus data into the SDM 3802,expected data into EDM 3804, and mask data into MDM 3806, a number ofMode input patterns 1014 are input to the TAM controller 3710 to producethe number of SDC 1002, EDC 1004, and MDC 1006 outputs required to clockserial stimulus, expected, and mask data from serial data inputs3902-3906 of bus 3714 into the serial input of the SDM, EDM, and MDM, asper timing diagram 3912. Note that the serial stimulus, expected, andmask data load operations of timing diagram 3912 can occur at the sametime since the SDM, EDM, and MDM are each coupled to separate serialdata inputs 3902-3906 of bus 3714. An instruction is defined and loadedinto to the TIR of TAM controller 3706 to allow the instruction decodecircuit 1308 to be programmed to respond to a Mode input pattern tosimultaneously output the SDC 1002, EDC 1004, and MDC 1006 signals toSDM, EDM, and MDM as shown in timing diagram 3912. As can be understood,the SDM, EDM, and MDM of FIG. 39 can be loaded in one third the time ittakes to load them using the single serial data input bus 3714 of FIG.38. While the serial inputs to TIR 3808 and data register 3810 are showncoupled to serial data input 3906, any of the serial data inputs3902-3906 of bus 3714 could be used to load the TIR and data register.

The parallel scan test timing of the TAM 3706 and TAM controller 3710 ofFIG. 37 is similar to that previously described for the TAM 704 and TAMcontroller 706 of FIG. 7 in FIGS. 22 and 23 with the exception that thestimulus, expected, and mask data are loaded into the SDM, EDM, and MDMof TAM 3706 serially using the single serial data input of bus 3714 ofFIG. 38 or the three serial data inputs of bus 3714 instead of inparallel using bus 720. Parallel scan testing using the three serialdata input bus 3714 of FIG. 39 occurs faster than parallel scan testingusing the single serial data input bus 3714 of FIG. 38 since the SDM,EDM, and MDM can all be loaded simultaneously.

While not shown, the TAM and system TAM controller of FIG. 34 can bemodified to use SDM 3802, EDM 3804, and TIR 3808 to operate using a oneor two serial data input bus 3714. Using a one serial input data bus3714 allows sequentially loading the SDM 3802 and EDM 3804 as was shownin FIG. 38. Using a two serial data input bus 3714 allows simultaneouslyloading the SDM 3802 and EDM 3804 as shown in FIG. 39.

FIG. 40 is provided to illustrate how the TAM and system TAM controllerwithin DUT 3202 of FIG. 32 could be modified by the use of SDM 3802, EDM3804, MDM 3806, and TIR 3808 to operate using a one or three serial datainput 3714 instead of the parallel input bus 720. With a one serialinput bus 3714, the SDM 3802, EDM 3804, and MDM 3806 of TAM 3706, andthe TIR 3808 of system TAM controller 4006 are loaded as described inregard to FIG. 38. With a three serial input bus 3714, the SDM 3802, EDM3804, and MDM 3806 of TAM 3707, and the TIR 3808 of system TAM 4006 areloaded as described in regard to FIG. 39. While not shown, the TAM andsystem TAM controller of FIG. 30 can be similarly modified to use SDM3802, EDM 3804, MDM 3806, and TIR 3808 to operate using a one or threeserial data input bus 3714.

There may be times when it is advantageous to be able to test a DUTusing either a parallel input bus 720 or a one, two, or three serialinput bus. On one hand, if it is desired to reduce test times of theDUT, an N wide parallel input bus 720 can be used to increase the testdata bandwidth between the tester and the DUT, according to the presentinvention. On the other hand, if it is desired to reduce the number ofconnections between the tester and the DUT, a one, two, or three serialinput bus can be used, again according to the present invention. Oneexample of using a one, two, or three serial input bus to test DUTswould be at wafer level testing where a large number of die need to becontacted and tested. Since a large number of die are contacted andtested in parallel, the test can run at a slower rate, due to input dataserialization. One example of using the parallel input bus to test DUTswould be at final test where a smaller number of packaged devices needto be contacted and tested. Since a smaller number of devices arecontacted and tested, the tester can allocate more of its interface forthe parallel bus of each device to allow the test to run at a fasterrate, due to input data parallelization.

FIG. 41 illustrates a DUT test architecture 4102 having TAMs 4106, TAMcontrollers 4110. TAM Selector 4112, and Scan Router 744. The DUT testarchitecture is interfaced to a Tester 4104. The DUT test architectureand interface to the tester is similar to that shown in FIG. 37 with thefollowing exceptions. An input bus 4114 is used to selectively inputserial or parallel data to the TAMs 4106, TAM controllers 4110, and TAMSelector 4112. The data register (4402 of FIG. 44) within the TAMselector 4112 is designed to operate as either a serial input registeror a parallel input register. The TIRs (4302 of FIG. 43) within the TAMcontrollers 4110 are designed to operate as either a serial inputregister or a parallel input register. The SDMs, EDMs, and MDMs (4202 ofFIG. 42) of TAMs 4106 are designed to operate as either a serial inputregister or a parallel input register. A Serial/Parallel select signal4116 is added to the DUT test interface to allow a tester to controlwhether the SDMs, EDMs, MDMs 4202, TIRs 4302, and data register 4402input data serially or in parallel from input bus 4114.

FIG. 42 illustrates an example circuit design for the TAM's SDM, EDM andMDM circuits 4202 of FIG. 41. Circuit 4202 has a serial input 4204, Nparallel inputs 4206-4214, N parallel outputs 4218-4226, Serial/Parallelinput 4116, and a clock input 4216. If circuit 4202 is a SDM the clockinput 4216 is coupled to SDC 1002. If circuit 4202 is an EDM the clockinput 4216 is coupled to EDC 1004. If the circuit 4202 is a MDM theclock input 4216 is coupled to MDC 1006. Within circuit 4202 there are Nmultiplexer 4228 and flip flop 4230 pairs that form an N bit register.When the Serial/Parallel input 4116 is high, the multiplexers 4228 areset to allow data from the serial input 4204 to be shifted through theflip flops 4230 to serially load the register. When the Serial/Parallelinput is low, the multiplexers 4228 are set to allow data from theparallel inputs 4206-4414 to load the flips flops 4230 of the registerin parallel. When using a parallel input bus 4114, N inputs will beconnected to the parallel inputs 4206-4214 of an SDM, EDM, and MDMcircuit 4202 to sequentially load the SDM, EDM, and MDM circuits inparallel as described in FIG. 10. When using a one serial input bus4114, a single serial input from bus 4114 will be connected to serialinputs 4204 of an SDM, EDM, and MDM circuit 4202 to sequentially loadthe SDM, EDM, and MDM circuits serially as described in FIG. 38. Whenusing a three serial input bus 4114, a first serial input from input bus4114 will be connected to the serial input 4204 of an SDM 4202, a secondserial input from input bus 4114 will be connected to the serial input4204 of an EDM 4202, and a third serial input from input bus 4114 willbe connected to the serial input 4204 of an MDM 4202 to simultaneouslyload the SDM, EDM, and MDM circuits serially as described in FIG. 39.

FIG. 43 illustrates an example circuit design 4302 for the TAMcontroller's TIR of FIG. 41. The circuit has a serial input 4304, Nparallel inputs 4306-4314, N parallel outputs 4318-4326, Serial/Parallelinput 4116, LoadTIR input 1504 of FIG. 15, and the clock input 804.Within the circuit there are N multiplexer 4328 and flip flop 4330 pairsthat form an N bit register. When LoadTIR is high, gate 4332 allows theclock input 804 to clock the flip flops 4330. When the Serial/Parallelinput is high, the multiplexers 4328 are set to allow data from theserial input 4304 to be shifted through the flip flops 4330 to seriallyload the register. When the Serial/Parallel input is low, themultiplexers 4328 are set to allow data from the parallel inputs4306-4314 to load the flips flops 4330 of the register in parallel. Whenusing a serial input bus, a serial input from bus 4114 of FIG. 41 willbe connected to serial input 4304 of the TIR to serially load the TIR asdescribed in FIGS. 38 and 39. When using a parallel input bus, N inputsfrom bus 4114 of FIG. 41 will be connected to the parallel inputs4306-4314 of the TIR to parallel load the TIR as described in FIG. 15.

FIG. 44 illustrates an example circuit design 4402 for the TAMSelector's data register of FIG. 41. The circuit has a serial input4404, N parallel inputs 4406-4414, N parallel outputs 4418-4426,Serial/Parallel input 4116, SelectTAM input 802 of FIGS. 13 and 15, andthe clock input 804. Within the circuit there are N multiplexer 4428 andflip flop 4430 pairs that form an N bit register. When SelectTAM ishigh, gate 4432 allows the clock input 804 to clock the flip flops 4430.When the Serial/Parallel input is high, the multiplexers 4428 are set toallow data from the serial input 4404 to be shifted through the flipflops 4430 to serially load the register. When the Serial/Parallel inputis low, the multiplexers 4428 are set to allow data from the parallelinputs 4406-4414 to load the flips flops 4430 of the register inparallel. When using a serial input bus, a serial input from bus 4114 ofFIG. 41 will be connected to serial input 4404 of the data register toserially load the data register as described in FIGS. 38 and 39. Whenusing a parallel input bus, N inputs from bus 4114 of FIG. 41 will beconnected to the parallel inputs 4406-4414 of the data register toparallel load the data register as described in FIGS. 8A and 8B.

FIG. 45 is provided to illustrate how the TAMs 3706 and system TAMcontroller 4006 within DUT 4002 of FIG. 40 could be modified to useeither a serial or parallel input bus 4508. The modifications include;(1) using SDM, EDM, and MDM circuits 4202 of FIG. 42 in TAMs 4506, usingTIR circuit 4302 of FIG. 43 in system TAM controller 4510, and (3)providing the Serial/Parallel input 4116 for selectively operating theSDM, EDM, MDM, and TIR circuits using either a serial data input bus4508 or a parallel data input bus 4508. With a one serial input bus4508, the SDM, EDM, and MDM circuits 4202 of TAM 4506, and the TIRcircuit 4302 of system TAM controller 4510 are serially loaded asdescribed in regard to FIG. 38. With a three serial input bus 4508, theSDM, EDM, and MDM circuits 4202 of TAM 4506, and the TIR circuit 4302 ofsystem TAM 4510 are serially loaded as described in regard to FIG. 39.With a parallel bus 4508, the SDM, EDM, MDM circuits 4202 of TAM 4506,and the TIR circuit 4302 of system TAM 4510 are parallel loaded asdescribed in regard to FIGS. 10 and 15. While not shown, the TAM 3006and system TAM controller 3008 of FIG. 30 can be similarly modified touse either a serial or parallel data input on bus 4508.

As seen in FIGS. 7, 30, 32, 35, and 36, when a parallel input bus isused between a DUT and a Tester the total number of signals in the testinterface is the sum of the parallel input bus signals plus the controland scan in and scan out signals. For example, if an 8-bit parallelinput bus is used in the test interface of FIG. 32, the total number ofsignals in the test interface will be 15 signals, i.e. 8 signals for theinput bus 720 plus 7 signals for the Mode 0-2 1014, Clock 804, LoadTIR1504, Scan In 734, and Scan Out 732 signals. While this is not anextreme number of test interface signals, it is beneficial to reduce thenumber of test interface signals if the reduction does not increase theDUT test time. The following description describes a way to reduce thenumber of test interface signals between a DUT and tester using a doubledata rate (DDR) interfacing technique which does not increase test time.

FIG. 46 illustrates the test architecture of FIG. 32 modified to includea double data rate (DDR) input circuit 4604. As seen, the DDR inputcircuit has outputs (8-bit Input But 720, Mode 0-2 1014, LoadTIR 1504,and Clock 804) that interface to the TAMs 3206 and system TAM controller3208 and inputs (6-bit DDR Data 4606 and DDR Clock 4608) that interfaceto the tester 4610. The operation of the TAMs 3206 and system TAMcontroller in response to the outputs from the DDR input circuit is thesame as previously described in FIG. 32. The only differences betweenthe test architecture of FIG. 32 and the one in FIG. 46 are; (1) the DDRinput circuit is used to interface the tester to the TAMs and system TAMcontroller, and (2) the tester is designed to output a 6-bit DDR databus 4606 and a DDR clock 4608 instead of the input bus 720, Mode 0-31014, LoadTIR 1504, and Clock 804 signals of FIG. 32. As can be seen,using the DDR input circuit of FIG. 46 the interface between the testerand DUT is reduced to only 9 signals (6-bit DDR data 4606, DDR clock4608, Scan In 734 and Scan Out 732), as opposed to the above mentioned15 signals for an 8-bit input bus 720 of FIG. 32.

FIG. 47 illustrates an example implementation of the DDR input circuit4604 of FIG. 46. The DDR input circuit inputs the DDR data bus 4606 andDDR clock 4608, and outputs the 8-bit input bus signals (Input 0-7) 720,Mode 0-2 signals 1014, and the LoadTIR signal 1504. The DDR data bus isinput to 6-bit registers 4702 and 4704. The outputs of the 6-bitregisters 4702 and 4704 are input to 6-bit registers 4706 and 4708,respectively. The outputs of the 6-bit registers 4706 and 4708 providethe 8-bit input bus signals 720, the Modes 0-2 signals 1014, and theLoadTIR signal 1504 shown in FIG. 46. The DDR clock 4608 is input to thenon-inverting clock inputs of 6-bit registers 4702, 4706, and 4708 andto the inverting clock input of 6-bit register 4704. The DDR clock isalso input to an inverted input of And gate 4710 and to a delay circuit4712. The output of the delay circuit 4712 is input to a non-invertinginput of And gate 4710. The output of the And gate 4710 provides theClock signal 804 shown in FIG. 46.

The operation of the DDR input circuit is best described using thetiming diagram of FIG. 47. The timing diagram shows the DDR clock andDDR data bus inputs from the tester 4610 and the input bus signals 720,Mode 0-2 signals 1014, and LoadTIR signal 1504, indicated as the “Input& Control Pattern”, and Clock 804 outputs from the DDR input circuit. Asseen in the timing diagram, on the rising edge of DDR clock 4732 the6-bit data output 4714 from tester 4610 is clocked into register 4702,and on the falling edge of DDR clock 4732 the 6-bit data output 4716from tester 4610 is clocked into register 4704. The 6-bit data inregisters 4702 and 4704 is clocked into registers 4706 and 4708 on therising edge of DDR clock 4734 and output as “Input and Control Pattern”4718. Subsequently, the 6-bit data 4720 and 4722 clocked into registers4702 and 4704 on rising and falling edges of DDR clock 4734 is clockedinto registers 4706 and 4708 on the rising edge of DDR clock 4736. Thisprocess of inputting 6-bit data from the tester to registers 4702 and4704 on the rising and falling edges of a DDR clock, respectively,followed by transferring the data in registers 4702 and 4704 toregisters 4706 and 4708 on the next rising edge of a DDR clock continuesfor the duration of the test operation.

As seen in the timing diagram, a Clock 804 output is produced for each“Input & Control Pattern” output from the DDR input circuit 4604. ThisClock output is produced by a clock generation circuit which, in thisexample, comprises an And gate 4710 and a delay circuit 4712. The clockgeneration circuit produces a Clock 804 output on each falling edge ofthe DDR clock 4608. The duration of the Clock 804 output can be adjustedby the length of time it takes for the DDR clock 4608 to propagatethrough the delay circuit 4712 of the clock generation circuit.Producing the Clock 804 on the falling edge of DDR clock 4608 mimics theclock timing of the input bus 720, Mode 0-2 signals 1014, and LoadTIRsignal of the timing diagrams in FIGS. 17, 18, 19, 20, 21, 22, 23, 25and 26, i.e. the Clock 804 occurs when the input bus 720, Mode 0-2signals 1014, and LoadTIR signal 1504 are in a stable state.

As mentioned the use of the DDR input circuit 4604 to reduce the numberof test interface signals between the tester and DUT does not increasethe test time of the DUT. For example, if the Clock 804 signal of FIG.32 and the DDR clock 4608 of FIG. 46 both operate at 200 MHz, the TAMs3206 and system TAM controller 3208 of FIGS. 32 and 46 will receiveinput bus 720 and Mode 0-2 and LoadTIR 1504 signal patterns at the sameclock rate, i.e. 200 MHz. The reason the TAM and system TAM controllerinput bus and control pattern rate of FIG. 46 is the same as the TAM andsystem TAM controller input bus and control pattern rate of FIG. 46 whenthe frequency of the Clock 804 of FIG. 32 and DDR clock 4608 are thesame is because the DDR input circuit 4604 of FIG. 46 inputs data fromthe DDR data bus 4606 on both the rising and falling edges of each DDRclock 4608. Inputting data from the DDR data bus on both edges of theDDR clock doubles the amount of data to the DDR circuit, which allowsthe “Input & Control Pattern” output rate from the DDR input circuit ofFIG. 46 to match the input bus and control pattern rate from the testerof FIG. 32.

FIG. 48 is provided to illustrate that the DDR input circuit 4604 canalso be used with the test architecture of FIG. 7. As seen the DDR inputcircuit 4604 inputs DDR data 4606 and DDR clock 4608 signals from tester4610 and outputs an 8-bit input bus 722 and control bus 722 to the TAMSelector 710, TAM controllers 706, and TAMs 704. The TAM selector, TAMcontrollers, and TAMs respond to the input bus 722 and control bus 722as described in regard to FIG. 7 and other related figures. As seen inFIG. 49, the only difference in the DDR input circuit 4604 of FIG. 48and the DDR input circuit 4604 of FIG. 46 is that the DDR input circuitof FIG. 49 outputs the SelectTAM 802 signal, as described in regard toFIG. 10, instead of the LoadTIR 1504 signal of FIG. 47.

While the FIGS. 46, 47, 48, and 49 examples of using DDR input circuitshave used 8-bit input busses 720, input buses of any width may be used.For example, a 16-bit wide input bus 720 may be used or a 4-bit inputbus 720 may be used. If a 16-bit wide input bus 720 is used, the DDRdata bus width from the tester would increase to 10-bits to allowproviding a 20-bit wide “Input & Control Pattern” bus output from theDDR input circuit, i.e. 16 input bus signals plus the Mode 0-2 andLoadTIR 1504 or SelectTAM 802 signals. If a 4-bit wide input bus 720 isused, the DDR data bus width from the tester would decrease to 4-bits toallow providing an 8-bit wide “Input & Control Pattern” bus output fromthe DDR input circuit, i.e. 4 input bus signals plus the Mode 0-2 andLoadTIR 1504 or SelectTAM 802 signals.

While the test architectures of FIGS. 7 and 32 have been shown modifiedto use the DDR input circuit, as per FIGS. 46 and 48 respectively, theother test architectures shown and described herein can be similarlymodified to use the DDR input circuit. Also if a Mode 0-2 pattern isused to provide the Load enable signal to TIR 1302 instead of using theLoadTIR signal 1504, as shown and described in FIG. 13, the LoadTIRsignal 1504 can be removed from the “Input & Control Pattern” output ofthe DDR input circuit of FIG. 47.

FIG. 50 is provided to illustrate a tester 5002 interfacing to multipleDUTs 5004 using the reduced test interface of FIGS. 46-49, each DUT testinterface consisting of 6-bit DDR data bus signals 4606, a DDR clocksignal 4608, a Scan In signal 724 or 734 and a Scan Out signal 726 or732 signal. The operation of the tester and DUTs of FIG. 50 is the sameas described in FIG. 35 with the exception that the tester interfaceswith the DUTs using the reduced tests interface signals described inFIGS. 46-49.

FIG. 51 is provided to illustrate a tester 5002 interfacing to multipleDUT strings 5102 using the reduced test interface of FIGS. 46-49, eachDUT string test interface consisting of G-bit DDR data bus signals 4606,a DDR clock signal 4608, a Scan In signal 724 or 734 and a Scan Outsignal 726 or 732 signal. The operation of the tester and DUT strings ofFIG. 51 is the same as described in FIG. 36 with the exception that thetester interfaces with the DUT strings using the reduced tests interfacesignals described in FIGS. 46-49.

Although exemplary embodiments of the present invention are describedabove, this description does not limit the scope of the invention, whichcan be practiced in a variety of embodiments.

1. An integrated circuit test architecture comprising: A. cores offunctional circuitry; B. test wrapper architectures, each test wrapperarchitecture being connected with one core; C. test access mechanisms,each test access mechanisms being connected with one of the test wrapperarchitectures; D. a test access mechanism controller having test accessmechanism interface buses, each interface bus being connected with oneof the test access mechanisms; and E. double data rate circuitry, thedouble data rate circuitry having a double data rate parallel data businput, a double data rate clock input, a clock output connected to thecontroller, a load instruction register output connected to thecontroller, mode outputs connected to the controller, and parallel databus outputs connected to the controller and coupled to the cores offunctional circuitry.
 2. The integrated circuit of claim 1 in which theinterface buses include a wrapper clock lead, a select wrapperinstruction register lead, a shift wrapper lead, a capture wrapper lead,an update wrapper lead, a transfer wrapper lead, a wrapper reset lead, awrapper serial input lead, and a wrapper serial output lead.
 3. Theintegrated circuit of claim 1 in which each wrapper architectureincludes: A. a wrapper control interface having a wrapper clock input, aselect wrapper instruction register input, a shift wrapper input, acapture wrapper input, an update wrapper input, a transfer wrapperinput, a wrapper reset input, and control outputs; B. a wrapper serialinput and a wrapper serial output; C. a wrapper instruction registerconnected to the wrapper serial input, selectively coupled to thewrapper serial output, and connected to the control outputs; D. awrapper bypass register connected to the wrapper serial input,selectively coupled to the wrapper serial output, and connected to thecontrol outputs; E. wrapper boundary registers connected to inputs andoutputs of the functional circuits, connected to the wrapper serialinput, selectively coupled to the wrapper serial output, and connectedto the control outputs; and F. data register scan paths connected to thefunctional circuits, connected to the wrapper serial input, selectivelycoupled to the wrapper serial output, and connected to the controloutputs.